作为 Cocoa 的新手,我在Interface Builder
,UIViewController
和朋友方面遇到了一些问题。
我有一个在 xib 中定义的UIViewController
子类UIView
,并且控制器的视图出口连接到视图。xib 的“文件所有者”设置为myViewcontroller子类。
在这个实例中,以下用于加载控制器/视图(从主视图控制器)的代码无法按预期工作:
if ( self.myViewController == nil )
{
self.myViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:nil];
}
[self.navigationController
pushViewController:self.myViewController animated:YES];
在 MyViewController 的方法中,我放置了断点并记录消息以查看发生了什么:
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
NSLog(@"initWithNibName\n");
}
return self;
}
-(void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad\n");
}
预期结果
-initWithNibName
和方法都-viewDidLoad
被调用,并显示了myViewController的视图。
观察结果
只有-initWithNibName
被调用,视图不显示。
我错过了什么吗?任何人都可以推荐任何要检查的东西吗?(特别是在非常不透明的界面生成器工具中)。