gpt4 book ai didi

iphone - awakeFromNib 不是调用而是显示 xib

转载 作者:可可西里 更新时间:2023-11-01 04:16:26 28 4
gpt4 key购买 nike

我在 xcode 4.5 中创建了一个新项目,并调用了我的 viewcontroller

-(id)initWithNibName:bundle:

来自 appdelegate,因为它在默认项目模板中调用,我没有使用 Storyboard但没有调用 awakeFromNib我也进行了搜索,但无法理解为什么 awakeFromNib 没有调用。

通过 -(void)awakeFromNib 的苹果文档“在从 Interface Builder 存档或 nib 文件加载接收器后,为服务准备接收器。”"初始化符合NSCoding协议(protocol)的对象(包括UIView和UIViewController的所有子类)使用他们的 initWithCoder: 方法。所有不符合的对象NSCoding 协议(protocol)使用它们的 init 方法进行初始化。在所有对象都被实例化之后初始化后,nib 加载代码为所有这些对象重新建立导出和操作连接。然后它调用对象的 awakeFromNib 方法。”

我的问题是为什么加载 xib 文件时 awakeFromNib 没有调用?我做错了什么吗?请详细说明

最佳答案

awakeFromNib:仅当 view controller 在 nib 文件中时被调用。
在这种情况下,您使用 init initWithNibName:bundle 初始化 View Controller ,因此 View Controller 的内容在 nib 内部,而不是 View Controller 本身
如果你打开 xib 文件,将一个对象拖到 xib 中并将类设置为你的 View Controller 类名,然后 awakeFromNib 将被调用(这种情况下你不需要手动初始化 View Controller )。
所以请记住在 xib 文件中有一个 View Controller 和一个不在 xib 文件中但所有内容都从 xib 文件加载的 View Controller 之间的区别。

PS: 我交替使用了 nib 和 xib。

编辑
我忘了告诉你如何解决这个问题。重写 viewDidLoad 来处理初始化的 socket 。

关于iphone - awakeFromNib 不是调用而是显示 xib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729814/

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