我有一个UIViewController,里面有UITableView。一切正常。在" didSelectRowAtIndexPath"我想激活一个" show" segue到UIViewController。我在Storyboard中设置它,创建了它的ViewController类等。
当我选择单元格时,我收到错误说:
***由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:' - [UITableViewController loadView]实例化带有标识符的视图控制器 "的UIViewController-NDM-TM-7SM"来自故事板" Main",但没有得到 的UITableView'
有趣的是,我发现尽管我将一个ViewController放到了故事板上,但它本身也改为Table View Controller。它的图片:
这不是最初的情况,起初我检查了同一个地方,只有ViewController。可能这是问题所在。
我看了之前提出的同样的问题,但他们是不同的。我的根视图控制器不是表视图控制器,它的视图控制器包括表视图。
无论如何,我该怎么做才能解决这个问题?我也使用prepareForSegue方法,似乎没有任何错误。
谢谢!
答案 0 :(得分:1)
你肯定可以创建一个从VC到另一个VC的segue,并从didSelectRowAtIndexpath
我试图从rootViewController
(不是单元格)到detailViewController
创建一个segue,它运行正常。
首先,确保已在storyboard中连接dataSource和delegate。
然后在您的didSelectRowAtIndexPath
方法中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"show" sender:[tableView cellForRowAtIndexPath:indexPath]];
}
这应该有效。
答案 1 :(得分:0)
你必须继承UITableViewController而不是UIViewController
像这样写你的.h文件
@interface ViewController : UITableViewController
//your property & method add here
@end