我有一个从.nib文件加载的视图控制器类。但是,我还想以编程方式向该视图添加控件(如UISwitch)(UISwitch未添加到nib文件中)。我应该在哪部分代码中分配UISwitch控件,viewDidLoad或loadView方法?
答案 0 :(得分:3)
我会在viewDidLoad上做。肯定。
来自Apple的文档:
讨论 仅调用此方法 当view属性为nil时 需要显示。你不应该 直接调用此方法。
如果您创建此视图的视图 控制器以编程方式管理 那么你应该重写这个方法 创建你的视图。默认 实现创建一个UIView对象 没有子视图。
但是,如果您初始化视图 使用nib文件 - 即你设置 thenibName和nibBundle 属性 - 然后你不应该 覆盖此方法,因为 默认实现已经重新加载 nib文件。而是覆盖 viewDidLoad方法设置任何 nib文件后的属性 加载。
在您的情况下,UIView是从 NIB 文件创建的。
答案 1 :(得分:1)
使用viewDidLoad
。此外,您应该删除在viewDidUnload
方法中添加的所有内容。
答案 2 :(得分:0)
如果从NIB加载,实施loadView
将导致错误。使用viewDidLoad
。正如Pablo所说,苹果公司已有很好的记录。