我有一个带UITableView的UIViewController。当视图加载时,numberOfSectionsInTableView:
被调用,我希望那时我的self.numberOfSections
变量为0.然后当我在加载我的数据的完成块中调用[self.tableView reloadData]
时,它不会调用任何UITableViewDataSource方法。
经过一些调试后,我发现即使在视图加载时正确调用numberOfSectionsInTableView:
,如果我打印传递给方法的tableView
,它也会与nil {{1}不同}}
我几乎肯定我的所有插座都已正确连接(我遵循了我用于制作的每个其他表视图的相同模式)。所以我不确定导致这种情况发生的原因,如果我的self.tableView
实例为零,那么哪个表格视图甚至会被传递到numberOfSectionsInTableView:
?
下面的屏幕截图显示了self.tableView
中的断点和实例的打印输出。
答案 0 :(得分:1)
在.h:
@interface YourViewController: UIViewController <UITableViewDataSource,UITableViewDelegate>
in .m:
YourTableView.delegate = self;
YourTableView.dataSource = self;
tableView委托:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return numberofRowsYouWant;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// make your cell.....
return cell;
}
如果您不错过任何这些步骤,它应该正常工作! 当然,如果您使用IB,请不要忘记将tableView与IBOutlet连接!
您可以重新加载tableView,例如这样的方法:
-(void) showData
{
[YourTableView reloadData];
[YourTableView setNeedsDisplay];
}