【发布时间】:2010-10-29 03:45:06
【问题描述】:
作为 Cocoa 的新手,我在 Interface Builder、UIViewController 和朋友方面遇到了一些问题。
我有一个 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");
}
预期结果
-initWithNibName 和 -viewDidLoad 方法都被调用,并显示 myViewController 的视图。
观察结果
只调用-initWithNibName,不显示视图。
我错过了什么吗?任何人都可以推荐任何要检查的东西吗? (特别是在极其不透明的 Interface Builder 工具中)。
【问题讨论】:
-
你和朋友有问题?
标签: iphone cocoa-touch uiview uiviewcontroller