我在设置视图控制器的nib默认视图插座时遇到了问题,这里是我的设置:
我有一个TabBar应用程序,在其中将一个导航控制器作为模态视图加载...
MyNavCtrlrSubClass *menu = [[MyNavCtrlrSubClass alloc]initWithNibName:@"MenuController" bundle:nil];
[tabBarController presentModalViewController:menu animated:anim];
MenuController本身的结构如下:
MenuController.xib File's Owner(MyNavCtrlrSubClass:UIViewController) Navigation Controller(UINavigationController) Navigation Bar(UINavigationBar) Root View Controller(Nib名称设置为加载AnotherViewController.nib) Navigation Item ->(UINavigationItem)
这一切都很好,但是当加载MyNavCtrlrSubClass时,我会得到以下错误:
Loaded the "MenuController" nib but the view outlet was not set
显然出现这种情况是因为File's Owner没有用于视图的outlet connection。问题在于我应该将什么设置为它的视图,或者是否需要首先进行某些设置? Navigation Bar是MenuController.xib中唯一的候选对象,但这只会使UINavigationBar本身充满全屏模式,那么怎么办呢?
显然,在IB中我漏了什么。除了一个用于UINavigationController的IBOutlet之外,MyNavCtrlrSubClass.m中没有任何代码。我在尝试完全在IB中设置这个的时候是不是犯了一个错误?我的想法是将模态导航控制器保留在一个nib文件中,并将其加载的所有视图保留在单独的nib文件中,但由于MenuController只是导航的容器而不包含任何视图,所以我显然设计得不对。 :)
如果你想知道为什么我不以其他方式设计它,那是因为我试图遵守我的(可能错误的)感觉,即IB要求您构建理想层次结构的方式。
非常感谢任何帮助。