我在Xcode中使用基于导航的模板创建了一个应用程序。我还创建了一个实现UITableViewDataSource协议的类,并希望将它用于RootViewController中的UITableView。
我已尝试在viewDidLoad中设置dataSource属性,并尝试在所有类型的初始化程序中设置,但我无法使其工作。
我该怎么做?
目前我正在做以下事情:
- (void)viewDidLoad {
[super viewDidLoad];
// The Navigation Controller uses this to display the title in the nav bar.
self.title = @"Names";
// Little button with the + sign on the right in the nav bar
self.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showAddNameScreen)];
// Set the data source and reload.
[self.tableView setDataSource:[DataAcceess sharedInstance]];
[self.tableView reloadData];
}
但是表格保持空白且数据源方法永远不会被调用(numberOfRowsInSection
和cellForRowAtIndexPath
)
编辑:我的sharedInstance
错误并返回零。没有任何方法被调用过。
答案 0 :(得分:0)
尝试
[self.tableView setDataSource:myDataSource];
来自UITableViewController子类(即self
)。
答案 1 :(得分:0)
设置dataSource后,您是否致电reloadData
以使表格视图使用新数据源?
答案 2 :(得分:0)
您的表数据源是否返回非零行数?
答案 3 :(得分:0)
问题是我的sharedInstance
方法有一个错误,它可以返回nil。由于忽略了向nil发送消息,所以我的班级上没有调用任何内容。