如何重新加载用xib制作的表中的数据
Posted
技术标签:
【中文标题】如何重新加载用xib制作的表中的数据【英文标题】:How to reload data in a table made in xib 【发布时间】:2011-03-28 03:50:49 【问题描述】:[myTable reloadData] 不起作用,[myTable deselectRowAtIndexPath:indexPath animated:YES];
我之前对 UITableViewController 进行了子类化,这两个函数都在其中起作用。然后,我将我的类更改为带有委托的 UIViewController 子类,以便我可以使用 xib。从那时起,这些功能停止工作。
我已将其设置为通过单击按钮触发 reloadData。多次运行调试器表明表方法甚至没有被 reloadData 触发,尽管表加载良好(在单击按钮之前)。委托源和委托被设置为文件的所有者,所以这一切都很好。
非常感谢。
【问题讨论】:
找到这个结果:[(UITableView*)self.view reloadData];但它会在几次加载后导致崩溃 这是因为您的视图不再是 UITableView,因为您不再继承 UITableViewController。如果有帮助,我可以在下面扩展我的答案来解释这一点。 【参考方案1】:我的猜测是您没有将插座设置为 myTable。这可以解释为什么数据源和委托工作,而不是重新加载数据的调用。
假设这是您在@interface 中需要以下内容的问题:
@property (nonatomic, retain) IBOutlet UITableView *myTable;
和一个实例变量UITableView *myTable
。那么你的实现中需要@synthesize myTable;
。
然后您需要使用界面构建器将您的表格视图分配给此插座,方法是从文件所有者 > 连接选项卡中的 myTable 条目拖动到布局中的表格视图。
假设这是问题所在,您现在可以在表格视图上调用诸如 reloadData 之类的方法。
【讨论】:
嗨梅森,感谢您的回答。这似乎不影响事情。我确实已经在 IB 中连接了所有内容,但没有在 myTable 上使用保留(我看到的示例代码没有使用保留或合成),但我现在将所有这些都放入尝试。不幸的是仍然响应相同 - 代码命中 [myTable reloadData] 但这不会调用表函数,基本上没有任何反应:它没有进入表代码块。 有趣。你能做 NSLog(@"%@", myTable) 并检查它不是 nil 吗? 是的,你是对的 - 它是空的。好想试试。我应该如何处理?到目前为止,我在 mytable 上有一个保留、合成、IBOutlet UITableView。我的接口声明是:@interface TableView : UIViewController以上是关于如何重新加载用xib制作的表中的数据的主要内容,如果未能解决你的问题,请参考以下文章