-1

我创建了具有带有 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;

}

这段代码应该基本上可以工作,但是在我选择一个项目后,它被选中(蓝色)并且它保持在选定的蓝色并且没有发生任何事情......在我选择另一行之后发生同样的事情,我的有什么问题代码?

4

3 回答 3

0

我认为您应该检查navigationController。它可能未初始化。您必须有一个 UINavigationController 才能将任何控制器推入其中。

于 2012-08-18T06:50:15.647 回答
0

在将单元格添加到表格时,您只需要禁用选择样式:

cell.selectionStyle = UITableViewCellSelectionStyleNone;
于 2012-08-18T06:36:42.330 回答
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;

}
于 2012-08-18T06:37:42.203 回答