在根控制器中选择项目后转到第二个视图控制器

时间:2012-08-18 06:31:40

标签: iphone objective-c uitableview

我使用viewController创建了具有tableView的应用程序,它应该做的是在选择项目后移动到第二个viewController并使用传递的数据打开它。我正在RootTableView中实现下一件事:

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *selecteditem = [listOfItems objectAtIndex:indexPath.row];

DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedItem = selectedItem;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}

这个代码应该基本工作但是在我选择一个项目之后它被选中(蓝色)并且它,它保持选定的蓝色并且什么都没发生...在我选择另一行之后同样的事情发生了,什么是我的代码错了吗?

3 个答案:

答案 0 :(得分:0)

您只需在向表格中添加单元格时禁用选择样式:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

答案 1 :(得分:0)

将以下代码放入代码中

  [self.tableView deselectRowAtIndexPath:
      [self.tableView indexPathForSelectedRow] animated:YES];

喜欢即

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *selecteditem = [listOfItems objectAtIndex:indexPath.row];
// implement my code
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];

DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedItem = selectedItem;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}

答案 2 :(得分:0)

我认为你应该检查一下navigationController。它可能没有初始化。 你必须有一个UINavigationController来推送任何控制器。