我使用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;
}
这个代码应该基本工作但是在我选择一个项目之后它被选中(蓝色)并且它,它保持选定的蓝色并且什么都没发生...在我选择另一行之后同样的事情发生了,什么是我的代码错了吗?
答案 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来推送任何控制器。