objective-c - 为什么某些 UIViewController 属性在未使用 viewDidLoad 设置时变为 nil?

标签 objective-c cocoa uikit

这似乎是在我使用 nib 文件加载 View 时发生的。我需要以编程方式为某些自定义 View 设置数据源和委托(delegate)。只有当我在 viewDidLoad 方法中设置它们时它们才起作用。在 initializer 、 awakeFromNib 等中设置它们都失败了。有谁知道这是什么原因?

最佳答案

当您从 nib 文件创建 View Controller 时,UIViewController 首先被初始化,然后被加载。因此,当调用 initWithNibName:bundle: 方法时,self.view 并且从 nib 加载的任何其他 View 都将为 nil。也可能发生 View 被卸载的情况(参见 viewDidUnload)。这就是为什么任何与 View 相关的初始化都需要在 viewDidLoad 中进行的原因。

关于objective-c - 为什么某些 UIViewController 属性在未使用 viewDidLoad 设置时变为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594620/

相关文章:

ios - SSL 固定 - 在 AFSecurityPolicy 中设置固定公钥而不是固定证书

ios - 使用 [NSData dataWithBytesNoCopy : . .. freeWhenDone :NO] with a const byte array as input? 是否安全

ios - 表格 View 元素的重复

html - Canvas 外的 CSS 固定位置

objective-c - 是否有针对 Google 的 Objective-C 风格的 Uncrustify 配置?

c++ - Unsigned Long Long 超出范围?

cocoa - NSString *文本到NSString *图标?

cocoa - 在 Xcode 4 中调试 Automator 操作

objective-c - NSTextView粘贴: how to paste "bar" instead when "foo" is pasted?

ios - 为什么我可以返回一个返回类型为 AnyObject 的 bool 值?使用 UIKit 而不是使用 Darwin