我有一个UITableViewController
,用tableView:didSelectRowAtIndexPath
方法设置视图控制器并调用
[self.navigationController pushViewController: viewController animated:YES]
。
当我在根控制器中选择一行时,第二个viewController加载但是为空 - 表视图加载但没有数据。在这里,tableView:numberOfRowsInSection
不会被调用。
当我返回顶层,然后再次选择同一行时,视图会正确加载 - 方法调用。
为什么表视图不会在第一次尝试时调用委托方法,而是在第二次调用时调用它们?
我错过了一些明显的东西吗?
由于
答案 0 :(得分:1)
使用initWithNibName
代替initWithStyle
解决 - 知道这将是显而易见的事情。
由于
答案 1 :(得分:0)
当你说:
当我在根目录中选择一行时 controller,第二个viewController 载荷但是空的。
你的意思是视图存在但不包含任何数据,或者你的意思是表格消失而被空白/空视图替换?
如果是前者,则需要确保第二级视图控制器在将数据推入堆栈之前对数据具有适当的访问权限,以便它可以填充其视图。
如果是后者,听起来你的第二级视图控制器在第一次调用它时没有正确初始化它的视图。如果使用nib,请在Interface Builder中检查控制器是否有指向视图的插座。如果以编程方式创建视图,请在调用显示之前检查视图是否正确初始化。