我在 Interface Builder 中设置 View Controller nib 的默认 View Outlet 时遇到问题。这是我的设置:
我有一个基于 TabBar 的应用程序,在其中我将导航控制器加载为模态视图...
MyNavCtrlrSubClass *menu = [[MyNavCtrlrSubClass alloc]initWithNibName:@"MenuController" bundle:nil];
[tabBarController presentModalViewController:menu animated:anim];
MenuController 本身的结构如下:
菜单控制器.xib 文件的所有者(MyNavCtrlrSubClass:UIViewController) 导航控制器 (UINavigationController) 导航栏 (UINavigationBar) 根视图控制器(Nib Name 设置为加载 AnotherViewController.nib) 导航项 -> (UINavigationItem)
这一切正常,除了加载 MyNavCtrlrSubClass 时,我收到以下错误:
Loaded the "MenuController" nib but the view outlet was not set
很清楚为什么会发生这种情况 - File's Owner 没有用于其视图的插座连接。问题是我应该设置什么作为它的视图,并且必须首先设置一些东西吗?导航栏是 MenuController.xib 中唯一的候选者,但这样做只会将 UINavigationBar 本身调整为全屏模式,可以这么说。
我显然在 IB 中遗漏了一些东西,但是什么?MyNavCtrlrSubClass.m 本身没有代码,除了 UINavigationController 的 IBOutlet。我在尝试完全在 IB 中进行设置是否犯了错误?这个想法是将模态导航控制器保留在一个 nib 中,并将它加载的所有视图都加载到单独的 nib 中,但是由于 MenuController 只是导航的容器并且本身不包含视图,因此我显然设计错了。:)
如果您想知道我为什么不以其他方式设计它,那是因为我试图服从我(可能是错误的)对 IB 如何要求您建立理想层次结构的看法。
任何帮助将不胜感激。