Убедитесь, что IBOutlets представления были созданы
У меня есть вид, какие подклассы UIView
:
class MyView: UIView {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myButton: UIButton!
//..
}
IBOutlet
s указаны в nib
, Я также инстанцирую MyView
от nib
,
Если MyView
имеет контроллер вида, я бы использовал viewDidLoad
определить когда myLabel
а также myButton
создаются Однако, это не тот случай, так как MyView
создается непосредственно из nib
,
Что я должен сделать, чтобы определить, когда два IBOutlet
в этом случае создаются экземпляры?
2 ответа
Метод, который вы ищете awakeFromNib()
:
Инфраструктура загрузки пера отправляет сообщение awakeFromNib каждому объекту, воссозданному из архива пера, но только после загрузки и инициализации всех объектов в архиве. Когда объект получает сообщение awakeFromNib, он гарантирует, что все его соединения с выходом и действием уже установлены.
Воплощать в жизнь awakeFromNib()
в вашем MyView
class, and it will be called when that view's outlets are connected.
Если вы создаете его из пера, как это
[[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil]
розетки будут инициированы сразу после этой линии.