我有一个子类UIView
的视图:
class MyView: UIView {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myButton: UIButton!
//..
}
IBOutlet
中指定了nib
。我还从MyView
实例化了nib
。
如果MyView
有视图控制器,我会使用viewDidLoad
来确定实例化myLabel
和myButton
的时间。但是,这不是这种情况,因为MyView
是直接从nib
实例化的。
在这种情况下,我该怎样做才能确定何时实例化两个IBOutlet
?
答案 0 :(得分:3)
如果你从nib创建它,就像这样
[[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil]
出口将在此行之后立即启动。
答案 1 :(得分:3)
您正在寻找的方法是awakeFromNib()
:
nib-loading基础结构将awakeFromNib消息发送到从nib归档重新创建的每个对象,但只有在归档中的所有对象都已加载并初始化之后。当一个对象收到一个awakeFromNib消息时,它保证已经建立了所有的插座和动作连接。
在dialog.getWindow().getAttributes().gravity= Gravity.RIGHT|Gravity.TOP
课程中实施awakeFromNib()
,当该视图的媒体连接时,系统会调用MyView
。