推送视图控制器逻辑错误

时间:2011-04-30 19:56:14

标签: iphone objective-c cocoa-touch ios uitableview

我想知道是否有人能告诉我我错过了什么。我得到了一个包含两个部分的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];
}

3 个答案:

答案 0 :(得分:0)

tableView:didSelectRowAtIndexPath:方法中,您可能不会考虑该部分;也就是说,当你应该使用UIViewController作为限定符时,你正在使用viewsindexPath.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;