gpt4 book ai didi

ios - UIviewController 不触发自己的委托(delegate)类

转载 作者:行者123 更新时间:2023-11-28 18:33:10 24 4
gpt4 key购买 nike

我不是 Interface Builder 的普通用户。我正在尝试使用 xib 创建一个新的 UIViewController 类。假设我正在创建一个名为 myViewController 的 Controller 当我创建它时,XCode 会创建 3 个文件,myViewController.hmyViewController.mmyViewController.xibxib 只包含一个 View 。它不应该包含一个 viewController 吗?

无论如何,我只用 init 初始化那个 View Controller (是的,我试过用 initWithNibName),问题是它自己的委托(delegate)方法,比如 viewDidAppearviewDidLoad 不会在其自己的类上触发。

它不应该在 myViewController.xibmyViewController.m 之间有一个委托(delegate)链接吗?怎么了?

最佳答案

xib 的“文件所有者”是您的 View Controller 。如果在选择“文件所有者”时检查身份检查器,您会看到其自定义类应设置为 myViewController

“文件的所有者”也是您连接 View Controller 的 IBOutletIBAction 的对象。

当您想以编程方式创建 View Controller 的实例时,可以使用此方法:

-[UIViewController initWithNibName:bundle:]

您可以像这样将 xib 文件的名称传递给该方法:

[[myViewController alloc] initWithNibName:@"myViewController"bundle:nil]

... 或者,如果您改为传入 nil,它将默认使用文件名与您的类名相匹配的 xib:

[[myViewController alloc] initWithNibName:nil bundle:nil]

如果您想使用另一个 xib 文件,并且其“文件所有者”类也设置为 myViewController,您可以传递该 xib 文件名:

[[myViewController alloc] initWithNibName:@"YourOtherXibFileName"bundle:nil]

关于ios - UIviewController 不触发自己的委托(delegate)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099329/

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