2013-08-26 33 views
0

當我在init中調用loadNibNamed:時,UIViewController無法接收到viewDidLoad事件。 但是如果我把loadNibNamed:撥打到別的地方,它就可以正常工作。是什麼原因?當在init中使用loadNibName時,ViewController無法收到viewDidLoad事件

-(id)init 
{ 
    self=[super init]; 

    if(self){ 
     [[NSBundle mainBundle]loadNibNamed:@"MainView" owner:self options:nil]; 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

回答

2

這是因爲當你在編寫init的實現時,你沒有正確地調用超級用nib的名字。

-(id)init { 
self = [super initWithNibName:@"MainView" bundle:nil]; 
return self; 
} 
+0

你爲什麼要調用'super'兩次? – Wain

+0

是的,你是對的,應該調用一次。我編輯了答案。 –

+1

我只是你告訴,它工作正常。謝謝〜 –

相關問題