几乎所有的 UINavigationController 示例都显示了使用 initWithNibName:bundle: 加载不包含整个 UIViewController(或子类)而仅包含 UIView 的 NIB,并将 NIB 的 File's Owner Class 属性设置为 UIViewController(或适当的子类)和它的视图出口指向 UIView。
为什么是这样?为什么不能从辅助 NIB 实例化完整的 UIViewController(特别是 UITableViewController)?为什么还要在 IB 中设置 view outlet?我不明白创建一个空白视图的意义,它无论如何都会被 UITableViewController 完全忽略。
在 MainWindow NIB 中,您可以完成从辅助 NIB 看似无法完成的两件事。您可以设置一个 UINavigationController,然后在其中设置一个 UITableViewController(或子类)。而且你不需要创建一个完全多余的 UIView 对象——这很有帮助,因为 UITableViewController 的重点(我想!)是它使用它的委托方法为你创建和管理一个关联的表视图。
这里发生了什么?我是不是很傻?还有其他方法可以做我想做的事吗?还是有一些合乎逻辑的理由让事情变成这样?