我有一个从xib文件加载的UIView。它有两个UITableView。我想在每个UITableView中显示不同的数据,并决定不使用indexPath.section。
所以考虑到这一点 - 我写了cellForRowAtIndexPath
这样的话:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *UsernameCellIdentifier = @"UsernameCell";
static NSString *PasswordCellIdentifier = @"PasswordCell";
static NSString *mailListTableViewCellIdentifier = @"Cell";
if (tableView == self.maillistTableview ){
UITableViewCell *cell = [self.maillistTableview dequeueReusableCellWithIdentifier:mailListTableViewCellIdentifier];
if (!cell){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:mailListTableViewCellIdentifier];
}
cell.textLabel.text = @"Cells";
return cell;
}
if (tableView == self.tableView){
if(indexPath.row == 0) {
self.usernameCell = (BBUsernameTableViewCell *)[tableView dequeueReusableCellWithIdentifier:UsernameCellIdentifier];
if(!self.usernameCell) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:UsernameCellIdentifier owner:self options:nil];
return self.usernameCell;
}
return nil;
}
当我在cellForRowAtIndexPath
上设置断点时,它仅针对第一个表格视图调用两次:self.tableView
我在cellForRowAtIndexPath中添加了一个NSLog来查看它正在查看哪个tableView,它从不“检查”self.maillistTableView
我已将该UITableView的代理连接到文件所有者。
有趣的是numberOfRowsInSection
它适用于self.maillistTableView
。
谁能告诉我这里哪里出错?
答案 0 :(得分:2)
由于numberOfRowsInSection
正在运行,请检查它的返回计数。如果数据源数组计数为零,则cellForRowAtIndexPath
将无效。
答案 1 :(得分:0)
也许self.maillistTableView
不会调用reloadData