dev*_*nkb 9 iphone uinavigationcontroller nib
我打电话的时候:
self.viewController = [[DidItViewController alloc] initWithNibName:@"DidItViewController" bundle:nil];
Run Code Online (Sandbox Code Playgroud)
然后我在调试器中执行此行后立即检查self.viewController.navController,我发现它是空的(0x0).
在DidItViewController上,我将navController定义为:
IBOutlet NavigationController *navController;
Run Code Online (Sandbox Code Playgroud)
在我的nib文件中,我将NavigationController绑定到文件所有者(DidItViewController)上的这个navController属性.
为什么我的navController没有创建?有任何想法吗?我想我可能会遗漏一些关于initWithNibName工作方式的东西.
谢谢.
Eon*_*nil 21
或者您可以使用[NSBundle loadNibNamed:owner:options:]方法代替.此方法可确保连接所有插座连接.([UIViewController initWithNibName: bundle:]没有)
在这种情况下,NIB中的文件所有者是PhotoShow类的外部实例.
// This works completely. All outlets works.
PhotoShow* obj = [[PhotoShow alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"PhotoShow" owner:obj options:nil];
// Outlets are always available at this moment.
// This works. but does not connects outlets correctly sometimes.
PhooShow* obj = [[PhotoShow alloc] initWithNibName:@"PhotoShow" bundle:[NSBundle mainBundle]];
// Outlets may not available at this moment.
Run Code Online (Sandbox Code Playgroud)
您可以使用此方法加载用户界面并使对象可用于您的代码.在加载过程中,此方法取消归档每个对象,初始化它,将其属性设置为其配置的值,并重新建立与其他对象的任何连接.(要建立插座连接,此方法使用setValue:forKey:方法,这可能会导致插座中的对象自动保留.)有关nib加载过程的详细信息,请参阅"资源编程指南".
| 归档时间: |
|
| 查看次数: |
5733 次 |
| 最近记录: |