相关疑难解决方法(0)

UIViewController -viewDidLoad未被调用

作为新的可可,我遇到的几个问题Interface Builder,UIViewController和朋友.

我有一个在xib中定义的UIViewController子类UIView,并且控制器的视图插座连接到视图.xib的"文件所有者"被设置为myViewcontroller子类.

在这一个实例中,以下用于加载控制器/视图的代码(来自主视图控制器)无法按预期工作:

if ( self.myViewController == nil )
{
    self.myViewController = [[MyViewController alloc]
        initWithNibName:@"MyViewController" bundle:nil];
}

[self.navigationController 
    pushViewController:self.myViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

在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");
}
Run Code Online (Sandbox Code Playgroud)

预期结果

调用两者-initWithNibName-viewDidLoad方法,并显示myViewController的视图.

观察结果

-initWithNibName调用,不显示视图.

我错过了什么吗?任何人都可以推荐任何检查?(特别是在奇妙的不透明Interface Builder工具中).

iphone cocoa-touch uiviewcontroller uiview

31
推荐指数
6
解决办法
6万
查看次数

标签 统计

cocoa-touch ×1

iphone ×1

uiview ×1

uiviewcontroller ×1