我想知道是否有人能告诉我我错过了什么。我得到了一个包含两个部分的tableview,但是当我点击第2部分的任何内容时,第1部分单元格中的内容被加载。 提前谢谢。
这是我的didselectrowatindexpath:
UIViewController *targetViewController = [[views objectAtIndex:indexPath.row] objectForKey:@"controller"];
[[self navigationController] pushViewController:targetViewController animated:YES];
if (indexPath.section == 0)
[partA objectAtIndex:indexPath.row];
else
[partB objectAtIndex:indexPath.row];
[targetViewController release];
}
答案 0 :(得分:0)
在tableView:didSelectRowAtIndexPath:
方法中,您可能不会考虑该部分;也就是说,当你应该使用UIViewController
作为限定符时,你正在使用views
从indexPath.row
数组中提取indexPath.section
。如果没有看到更多的视图控制器,很难给出更好的答案。
答案 1 :(得分:0)
您可以考虑使用以下代码而不是if语句。
UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:indexPath];
同时删除该版本,因为您没有保留或分配它。
但是说实话:我不明白你想做什么。 “装”是什么意思?装在哪里?答案 2 :(得分:0)
您还没有提供,但我的猜测是您应该覆盖didSelectRowAtIndexPath方法并检查选择单元格的所有者:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
if ( tableView == _tableView1){
//Do something
}
else if ( tableView == _tableView2){
//Do something different
}
else return;