views:

83

answers:

1

From the documentation of UITableView / UITableViewController:

If you decide to use a UIViewController subclass rather than a subclass of UITableViewController to manage a table view, you should perform a couple of the tasks mentioned above to conform to the human-interface guidelines.

To clear any selection in the table view before it’s displayed, implement the viewWillAppear: method to clear the selected row (if any) by calling deselectRowAtIndexPath:animated:. After the table view has been displayed, you should flash the scroll view’s scroll indicators by sending a flashScrollIndicators message to the table view; you can do this in an override of the viewDidAppear: method of UIViewController.

So lets say I do my custom stuff here and I do not flash the scroll indicator, and I do not reset the selection (which I think is wrong anyways, the user wants to know from where he came from). Will they reject it?

+4  A: 

Apple may reject it. In practice, they won't (this is practical experience, not inside knowledge). They will reject apps now for using their private api, although in the past they wouldn't. But if your app sucks, not flashing scroll indicators might be a reason they give for rejecting it. If not deselecting a cell is important to your UX, then you should be ok - or it's possible that you have a poor UX.

Deselecting the cell should be animated - so the user gets the hint of where they came back from, which they should be able to remember anyway. But retaining the selection could lead the user to think that the selection is somehow significant and will affect their subsequent actions, which from your description it won't. So lose the selection.

Paul Lynch