我发誓我已经看了六个教程,我无法弄清楚我做错了什么。我有一个通过IB嵌套在UIView中的tableview,并且表格都被格式化并正确填充。我只是无法让它向我展示细节屏幕。该表识别出水龙头,并且该行已被选中,但是......该行保持选中状态。然后,绝对没有任何反应。我可以选择具有相同结果的其他行,但过去没有任何事情发生过。我可以移入和移出视图,并在整个应用程序中具有完整功能。我甚至可以滚动tableview,但我永远无法进入单元格细节屏幕。我在IB中将所有必要的部分联系在一起。
这是我的详细视图代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Get the selected cell detail
NSString *theString = [secondview objectAtIndex:indexPath.row];
celldetails *dvController = [[celldetails alloc] initWithNibName:@"celldetails" bundle:nil];
dvController.cellString = theString;
[self.navigationController pushViewController:dvController animated:YES];
}
我已尝试过“bundle:nil”和“bundle:[NSBundle mainBundle]”,但都没有产生所需的结果。有人有建议吗?
答案 0 :(得分:0)
如果pushViewController:animated:
没有做任何事情,那么navigationController
可能是nil
,但是由于UIViewController
实例已发送到pushViewController:animated:
,因此它确实有效将显示某种视觉变化(除非视图相同且您不使用动画)。尝试在NSLog(@"blah");
实施中添加didSelectRowAtIndexPath:
行,以确保它已被调用。或者在该方法中使用断点。
一捆nil
很好。如果找不到.xib
,那么你会收到调试消息,所以它找到了.xib
。如果您加载了.xib
但未设置view
个商店,那么.xib
甚至会设置有效的view
个套餐,因为应用会崩溃。