我有一个XIB,里面有很多视图(iPad)。其中一个视图是UITableView。代表是通过IB设置的。当您运行应用程序时cellForRowAtIndex
未被调用。事实上,在此文件中,也没有numberOfRowsInSection
或numberOfSections
方法。只有didSelectRowAtIndexPath
方法。
所以我写了一个cellForRowAtIndex
并手动设置self.table.delegate = self
。
如果单击一个单元格,则执行didSelectRowAtIndexPath
。
老实说我不知所措?这怎么可能发生?
答案 0 :(得分:5)
添加:
self.table.dataSource = self;
cellForRowAtIndex
是一种数据源协议方法,因此您必须将数据源设置为self,以便控制器响应数据源协议。
答案 1 :(得分:1)
如果此控制器不是UITableViewController,请不要忘记将以下内容添加到.h文件中:
@interface myViewController: UIViewController <UITableViewDelegate, UITableViewDataSource> {}
答案 2 :(得分:0)
我不确定是什么导致了这个问题,但是一个简单的解决方法就是在你的-(void)viewDidLoad
方法中你可以调用[self.table reloadData]
强制它手动调用所有函数
我遇到的其他一些问题是你说“numberOfRowsInSection或numberOfSections未实现”......这些方法是表视图所必需的,oyu必须确保实现它们。这很可能就是问题
答案 3 :(得分:0)
在.h中,您需要添加Datasource和Delegate声明
@interface HDMainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
在您创建tableview的.m文件中,您需要设置
tableview.delegate = self;
tableview.dataSource = self;
现在您的dataSource和Delegate方法应该可以正常工作