2009-07-01 43 views
14

我已經將UIViewController分類爲一個新的類PageViewController(我在寫一個簡單的書籍應用程序)。我想添加一個從nib文件加載的新視圖,並使用下面的代碼。有用。爲什麼initWithNibName不能用於我的UIViewController子類?

PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil]; 
[viewController1.view setUserInteractionEnabled:YES]; 
[self.view addSubview:viewController1.view]; 

但是,第一行是錯誤的,因爲我應該在PageViewController上調用alloc。當我糾正它(下面)時,代碼會編譯,但xib文件不會加載,並且視圖只是透明的。

PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil]; 
[viewController1.view setUserInteractionEnabled:YES]; 
[self.view addSubview:viewController1.view]; 

的PageViewController initWithNibName方法已被取消註釋並與缺省,設置自= [超級initWithNibName:nibNameOrNil束:nibBundleOrNil]。

我試過的東西: 在Page1 nib文件中,我試過改變PageViewController和UIViewController之間的File Owner類。是的,我記得之後將它連接到視圖插座。

請幫忙!我很難過。

+0

可能錯誤是在你的overrided initWithNibName方法 – oxigen 2009-07-01 11:44:53

+0

這只是默認: - (ID)initWithNibName:(的NSString *)nibNameOrNil包(一個NSBundle *)nibBundleOrNil { 如果(自= [超級initWithNibName:nibNameOrNil束(@「in pageviewcontroller custom init」); //定製初始化 \t \t NSLog(@「in pageviewcontroller custom init」); } return self; } – niels 2009-07-01 16:33:08

回答

16

你重寫了PageViewController中的loadView方法嗎? 如果你NSLog viewController1.view怎麼辦?

的確,在Interface Builder中,您必須將文件的所有者設置爲PageViewController,並將其視圖連接到Interface Builder中的視圖。

相關問題