作为Cocoa新手,我遇到了几个与Interface Builder
,UIViewController
和朋友有关的问题。UIViewController -viewDidLoad未被调用
我有一个UIViewController
子类,在xib中定义了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");
}
预期结果
两个调用和-viewDidLoad
方法,并显示myViewController的视图。
把观察结果
只有-initWithNibName
被调用时,不显示视图。
我错过了什么吗?任何人都可以推荐任何检查? (特别是在极其不透明的Interface Builder工具中)。
相关问题:http://stackoverflow.com/questions/1479576/viewdidload-not-called-in-subclassed-uiviewcontroller – Casebash 2011-04-18 02:53:14
你有问题的朋友吗? – Marty 2012-04-14 23:59:19