iphone navigationController不会显示,除非我访问。查看
当我为navigationController创建一个iboutlet并尝试将其添加到currentview时,它不会显示任何内容。这真的很奇怪,当我在代码中初始化navigationController,然后将其添加到视图中时,它工作得非常好 当我在mainWindows.xib中创建一个并将其添加到ApplicationIDFinishLaunching方法中的视图时,它甚至可以工作 但是,当我尝试从另一个viewController加载它时,它就失败了,留给我的是一个空白屏幕 因此,当我以编程方式添加它或将它添加到mainWindow.xib中时,它就会工作 我已经试了几个小时让它工作。它看起来很简单,但我无法让它在其他xib文件中工作 我的设置:iphone navigationController不会显示,除非我访问。查看,iphone,interface-builder,navigation,navigationcontroller,Iphone,Interface Builder,Navigation,Navigationcontroller,当我为navigationController创建一个iboutlet并尝试将其添加到currentview时,它不会显示任何内容。这真的很奇怪,当我在代码中初始化navigationController,然后将其添加到视图中时,它工作得非常好 当我在mainWindows.xib中创建一个并将其添加到ApplicationIDFinishLaunching方法中的视图时,它甚至可以工作 但是,当我尝试从另一个viewController加载它时,它就失败了,留给我的是一个空白屏幕 因此,当我以
#import "RootViewController.h"
RootViewController *rootViewController=[[RootViewController alloc] init];
[window addSubview:rootViewController.navController.view];
我的RootViewController具有指向navigationController的ibOutlet
有人有主意吗?我完全不明白为什么这个简单的东西不起作用。我错过了什么,它让我发疯
****更新****
如果我将上述代码更改为:
我需要访问rootViewController.view,否则它将无法工作。为什么
#import "RootViewController.h"
RootViewController *rootViewController=[[RootViewController alloc] init];
if(rootViewController.view){
NSLog(@"nil");
}
[window addSubview:rootViewController.navController.view];
提前谢谢 每次我遇到这种情况,问题总是在于我忘了在Interface Builder中连接某些东西。确保检查您的控制器是否连接到应用程序代理中的rootViewController插座或任何位置。还要确保窗口已连接
如果某个东西没有连接,那么您在插座中的结果是nil,因此self.rootViewController.navController.view最终是[[nil navController]view],它是nil,并尝试将nil添加为子视图。如果window为nil,您同样会与nil对话,但可能是rootViewController未连接。这是因为访问
视图实际上调用getter,getter会延迟(按需)创建控制器的视图。rootController
的视图在您第一次调用view
getter方法之前不存在。创建第一个应用程序视图的常用方法是
[window addSubview:someController.view]
它负责创建视图 我有一个类似的问题,实际上甚至更奇怪,当控制器仅在IB中连接时,应用程序在iPad上可以正常加载,但在iPhone上我有一个空白屏幕,调试器显示控制器的视图有一个0,0,0,0的帧
我通过在ApplicationIDFinishLaunching中的代码中重置rootviewcontroller插座修复了此问题,但我不明白这为什么不起作用谢谢您的回答!我检查了所有的东西,看起来都正常了,我通过访问rootViewController.view解决了这个问题,但它不知道为什么需要这样做