gpt4 book ai didi

iphone - UIViewController -viewDidLoad 未被调用

转载 作者:行者123 更新时间:2023-12-03 18:15:11 27 4
gpt4 key购买 nike

作为 Cocoa 新手,我在使用 Interface BuilderUIViewController 和 friend 时遇到了一些问题。

我有一个 UIViewController 子类,其中有一个在 xib 中定义的 UIView ,并且 Controller 的 View 导出连接到该 View 。 xib 的“文件所有者”设置为 myViewcontroller 子类。

在这个实例中,以下用于加载 Controller / View (从主视图 Controller )的代码无法按预期工作:

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 的 View 。

观察结果

仅调用-initWithNibName, View 不显示。

我是不是错过了什么?有人可以推荐什么要检查的吗? (特别是在极其不透明的 Interface Builder 工具中)。

最佳答案

回复:找到解决方案!!!!!!

确实,这似乎是一个可行的解决方案,但真正的技巧不是将 view.hidden 属性设置为 NO,使 View 从 nib 文件加载的是调用 UIViewController 的 view 方法,只有在第一次调用 view 方法时, View 才会真正从 nib 加载。

从这个意义上说,一个简单的[viewController view]消息将强制从nib文件加载 View 。

关于iphone - UIViewController -viewDidLoad 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com