如果我没看错的话,您在那里创建的 FooViewController 没有任何用途。在 MainWindow.xib 中,您有一个导航控制器和您自己的 RootViewController。到目前为止,一切都很好。您在 RootViewController.xib 中定义该视图。也可以。但是最后一个 xib 里面的 View Controller 什么都不做,直到你做类似的事情
[self.navigationController pushViewController:detailViewController animated:YES];
(在您的 didSelectRowAtIndexPath 中)
didSelectRowAtIndexPath 中被注释掉的部分基本上是在用户选择一行时调用一个新的视图控制器,并且在加载关联的 xib 文件时这样做,该文件在这一行中加载:
DetailViewController *detailViewController = [[DetailViewController alloc]
initWithNibName:@"Nib name" bundle:nil];
您也可以像现在一样在 nib 文件中创建视图控制器,但是您需要定义一个
IBOutlet FooViewController *fooVC;
并将其链接到 IB 中,然后在用户选择某些内容时将此 fooVC 推送到视图堆栈 - 在这种情况下,您将跳过上面的 alloc / init 行。