的UITableViewController负载空视图,但后来加载正确第二负载

问题描述:

后我有一个UITableViewController其在它的tableView:didSelectRowAtIndexPath方法,建立了一个视图控制器,并调用的UITableViewController负载空视图,但后来加载正确第二负载

[self.navigationController pushViewController: viewController animated:YES]

当我在根控制器中选择一行时,第二个viewController加载但是为空 - 表视图加载但没有数据。这里没有调用tableView:numberOfRowsInSection

当我回到顶层,然后再次选择相同的行,视图加载正确 - 调用方法。

为什么表视图不会在第一次尝试时调用委托方法,而是在第二次调用它们?

我是否缺少明显的东西?

感谢

+0

更清晰的“第二个viewController加载,但是是空的”将有所帮助。你什么意思是空的? – TechZen 2009-12-03 21:30:00

通过使用initWithNibName而不是initWithStyle解决 - 知道这将是明显的。

谢谢

当你说:

当我选择在根 控制器,第二的viewController 负载一行但该行是空的。

您的意思是说,该视图存在,但不包含任何数据,或者您的意思是表消失将被空白/空视图取代?

如果是前者,则需要确保第二级视图控制器在将数据推入堆栈之前能够正确访问数据,以便可以填充其视图。

如果是后者,它听起来像你的第二级视图控制器第一次被调用时没有正确初始化它的视图。如果您使用笔尖,请在Interface Builder中检查控制器是否有指向视图的插座。如果以编程方式创建视图,请检查视图是否在调用显示之前正确初始化。

+0

抱歉应该更清楚了。表视图加载但不包含数据。我将如何检查正确的数据访问?我的观点是应该从数组中获取我的数据(当我第二次加载视图时它会这样做)。 – joec 2009-12-03 22:40:51

+0

问题将发生在第二级视图控制器获取数据数组的任何地方。如果是外部检查控制器分配的数据或访问时间。如果它在内部生成数据,请确保在视图出现之前调用此方法。 – TechZen 2009-12-04 01:18:04