重新加载UITableView时出现问题

时间:2009-05-17 09:03:23

标签: iphone

我有一个由数组填充的UITableView,我在导航栏上有一个按钮(按下时)将一个项添加到数组并在UITableView中调用[self.tableView reloadData]。这会导致调用numberOfRowsInSection并返回正确的行数(数组中的项数)但BUT不会调用cellForRowAtIndexPath。 我已经创建了一个新的基于导航的应用程序来尝试找到一个解决方案,但却有完全相同的问题! 如果有人知道答案,我将非常感激,我一直在撕掉头发留下的最后一天! 我已将测试项目的源代码放在我的网站上www.sofaracing.com/Downloads/Test3.zip

2 个答案:

答案 0 :(得分:2)

适合我! ;)

在MainWindow.xib中,您添加了一个对象Root View Controller(它不是导航控制器的一部分) - 删除它,不是必需的。然后将outlet refreshFriendsList连接到RootViewController的NavigationItem的Bar按钮。什么,魔术!

顺便说一句:您可能需要清理警告。您可能想要考虑为数据模型创建一个类,而不是使用UIApplication sharedApplication。

答案 1 :(得分:1)

我快速调试了您的测试应用。我无法找到根本原因,但由于Interface Builder设置中的一些混乱,您似乎有两个不同的表视图。

如果使用项初始化原始数组,则会正确调用cellForRowAtIndexPath。如果在此调用中检查self.tableView实例,稍后在后续调用refreshFriendsList时检查self.tableView指向另一个实例。

2009-05-17 14:33:07.591 Test3[33580:20b] cellForRowAtIndexPath 0
2009-05-17 14:33:07.594 Test3[33580:20b] self.tableView: <UITableView: 0x52b9b0>
2009-05-17 14:42:36.810 Test3[33762:20b] numberOfRowsInSection: tableView <UITableView: 0x53bcd0>