我无法找到一个好地点,selectRowAtIndexPath:animated:scrollPosition:
致最初在UITableView
中选择一行。初始化表视图控制器时尚未加载表数据,因此在初始化UITableViewController
后我无法立即进行选择(否则会发生超限异常)。
答案 0 :(得分:6)
每次出现视图时,您都需要使用viewWillAppear:
来设置视图的状态,即使该视图之前已经显示过。 UITabViewController或UINavigationViewController中的任何不可见视图都可以随时卸载,因此您不能依靠非可见视图来保持其状态。
或者,为了更好地控制,请实施loadView
,viewDidLoad
和viewDidUnload
。
如果要维护自己的视图控制器层次结构,则必须手动将viewWillAppear,viewWillDisappear等消息转发给子视图控制器。
答案 1 :(得分:3)
尝试并重载viewWillAppear:animated
或viewDidAppear:animated
,确保也调用超级。
确保同时拨打selectRowAtIndexPath:indexPath animated:NO
,它会选择没有时间延迟。
答案 2 :(得分:2)
你可以设置在uitableview的cellforrowatindexpath方法中选择的任何单元格。使用cell.selected = YES;