iphone 通过笔尖初始化哪个初始化方法会在UIViewController子类中调用?

更新时间:2024-04-26 下载TXT文档 下载Word文档

App Delegate对视图控制器具有出口属性,并且在笔尖中创建了视图控制器。

尽管加载了视图控制器的-viewDidLoad方法,但似乎它指定的初始化方法没有收到调用:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
    NSLog(@"iniwinib");
    if (self = [super initWithNibName:nibName bundle:nibBundle]) {
        // do stuff
    }
    return self;
}

我也尝试使用-init,但这也没有接到电话。 没有NSLog输出。 在这种情况下,我必须使用另一个初始化程序吗? {短码网-DuanMa.NET}

在这种情况下,-initWithCoder:是初始化程序(因为正在从NIB中反序列化对象),但是您实际需要的例程是-awakeFromNib。 这就是在NIB中的所有对象都已构造好并且所有插座都已连接好之后的称呼。

您实际上是在调用initWithNibName在代码中的某个地方创建ViewController吗? 如果不是这样,它将永远不会被调用,该方法不会自动被调用,您必须调用它才能从笔尖创建viewController。 但是您不需要调用此方法,因为您已经在笔尖中设置了ViewController。

  • 他们以您的方式说过,这可能会使读者感到困惑。 它建议存储在NIB中的对象也应该具有发送给它们的initWithNibName:。 这不是真的。 存储在NIB中的对象绝不应发送initWithNibName:。 只有拥有NIB的对象才应发送此消息。
  • 好viewController是具有initWithNibName intializer的唯一对象
  • 是的,虽然视图控制器可以拥有NIB,但它们也可以存储在NIB中。 将UIViewController(或其任何子类)放在NIB中时,就不应该将其发送给initWithNibName:。 您不应该将初始化程序发送到任何已实例化NIB的对象。

以上就是短码网小编为大家整理的《iphone 通过笔尖初始化哪个初始化方法会在UIViewController子类中调用?》相关内容,希望大家喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

iphone 通过笔尖初始化哪个初始化方法会在UIViewController子类中调用?》文档下载仅供参考学习,下载后请在24小时内删除。

转载注明出处:https://www.duanma.net/article/776427d2378.html

回到顶部