2009-07-01 46 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中的视图。

相关问题