所以看来我应该在中设置我的成员变量viewDidLoad
- 但我很困惑为什么要设置这些变量initWithCoder
失败,因为两者都是在程序开始时调用的。
特别是我有一行代码:
[worldView setMapType:MKMapTypeSatellite];
其中worldView
is a IBOutlet
MKMapView
目的。它工作在viewDidLoad
, 但不是initWithCoder
.
插座尚未连接时initWithCoder
叫做。
来自文档 https://developer.apple.com/library/IOS/documentation/UIKit/Reference/NSObject_UIKitAdditions/Introduction/Introduction.html#//apple_ref/occ/instm/NSObject/awakeFromNib:
在实例化过程中,档案中的每个对象都是
取消归档,然后使用适合其类型的方法进行初始化。
符合以下条件的对象NSCoding
协议(包括所有
的子类UIView
and UIViewController
)使用它们初始化initWithCoder:
method.
...
毕竟对象
已经实例化并初始化,笔尖加载代码
为所有这些重新建立插座和动作连接
对象。然后它调用awakeFromNib
对象的方法。
So awakeFromNib
将是自定义 UI 元素的合适位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)