UIViewController知道它是否被推或弹出?

Nin*_*ngs 5 objective-c uitableview uinavigationcontroller ios

我有一个主要的UITableView,当按下它时它会转到另一个UITableView,当按下一个单元格时,它会进入该单元格的DetailView.

我希望中间UITableView的行为有所不同,具体取决于是否弹出了detailView或UITableView本身是否被推送.如果视图从主表推进,我想滚动到顶部,如果在DetailView弹出后显示,我希望它保持在同一位置.

有什么建议?

Mat*_*uch 2

将 DetailViewController 推送到 navigationController 后,您可以在 DetailViewController 上调用 rollToTop 方法。

像这样的东西:

if (!detailViewController) {
    detailViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];
}
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController scrollToTop];
// or use the tableView directly: 
// [detailViewController.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
Run Code Online (Sandbox Code Playgroud)