作爲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