gpt4 book ai didi

ios - 由xib初始化的ViewController无法正常工作吗?

转载 作者:行者123 更新时间:2023-12-02 11:02:51 24 4
gpt4 key购买 nike

这是一个奇怪的问题。

1.我通过xib创建了一个自定义“ View ”,并通过以下方式对其进行了初始化

     KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];

这个Xib的文件的所有者名称是“NSObject”(然后再尝试其他操作,无论选择什么,它都能平稳运行),然后在该位置,将 View 的自定义类选择为“KWView” [此xib名为“KWView.xib”]

=======可行!

2.然后我通过xib创建另一个自定义“viewController”。
 KWMenuVC *menuVC = [[[NSBundle mainBundle] loadNibNamed:@"KWMenuVC" owner:nil options:nil ]lastObject];//  error occurs here
[self.view addSubview:self.menuVC.view];

Xib的文件的所有者名称为“KWMenuVC”(我也尝试使用NSObject),在这里,我选择了该VC View 的“自定义类”为“UIView”。[此xib名为“KWMenuVC.xib”]

=======这是行不通的,它卡在“KWMenuVC * menuVC = [[[NSBundle mainBundle] loadNibNamed:@“menuVC” owner:nil options:nil] lastObject]; “并且错误为“[[setValue:forUndefinedKey:]:此类与键 View 的编码不兼容”

3.后来,我尝试了另一种方法来初始化KWMenuVC,无论我如何更改其Xib文件的所有者名称,该方法都可以正常工作
     KWMenuVC *menuVC= [[KWMenuVC  alloc]init]; 
[self.view addSubview:self.menuVC.view];

=======效果很好!

这怎么可能发生?我以前是通过代码构造应用的UI的。但是xib在某些情况下似乎更有效。现在看来,这不是一件容易理解的东西。

非常感谢您的帮助!

最佳答案

用XIB初始化UIViewController的正确方法是:

KWMenuVC *viewController = [[KWMenuVC alloc]initWithNibName:@"KWMenuVC" bundle:nil];

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instm/UIViewController/initWithNibName:bundle:

关于ios - 由xib初始化的ViewController无法正常工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328392/

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