使用UIViewController(或UITableViewController)的tableView属性

时间:2012-04-26 09:48:13

标签: xcode uiviewcontroller uitableview reloaddata

#import <UIKit/UIKit.h>

@interface FourthViewController : UIViewController{

//@interface FourthViewController : UITableViewController{

我想更新我的tableview,所以我尝试使用[self.tableView reloadData],但我甚至无法输入这行代码,因为我在UIViewController工作,而tableView属性是仅UITableViewController。所以我试图变得聪明,只需将UIViewController更改为UITableViewController,但我得到了这个错误:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "b4k-XH-Uhj-view-V2h-dE-ixJ" nib but didn't get a UITableView.'
Imo这很奇怪,因为UITableViewController可以用于tableView而不是相反,但接缝就像我弄错了,或者这里发生了什么? 如果你要求更多代码=) 谢谢你。

1 个答案:

答案 0 :(得分:0)

UITableViewController实际上只是一个UIViewController,它包含一个UITableView的插座,并实现了两个tableview委托:UITableViewDelegate和UITableViewDataSource。

您可能需要考虑使用UITableViewController而不是标准的UIViewController替换nib文件中的viewcontroller实例。

或者,您可以通过为包含的UITableView创建插座来手动调整ForthViewController实例,以将tableview公开为属性。

但是,如果你这样做,你还必须在某处手动实现两个tableview委托UITableViewDelegate和UITableViewDataSource(可能在ForthViewController中),并手动将UITableView与这些委托相关联。