Какой метод UIView вызывается при создании экземпляра из NIB? - PullRequest
7 голосов
/ 18 апреля 2010

У меня есть простой пользовательский вид, который подключен через розетку к NIB. Для этого конкретного представления есть действия, которые я хотел бы выполнить над представлением при его инициализации, независимо от того, на каком NIB оно находится.

Проблема в том, что ни методы (id) init, ни (id) initWithFrame: (CGRect) не вызываются в пользовательском представлении.

Какой метод вызывается в UIView, когда он создается из NIB? Я бы просто использовал контроллер представления и метод viewDidLoad за исключением того, что это конкретное представление появляется на множестве разных NIB.

1 Ответ

14 голосов
/ 18 апреля 2010

Вы можете использовать awakeFromNib для такого рода инициализации. Обычные методы инициализации вызываются, когда объект фактически создается IB, а затем архивируется с использованием NSCoding, поэтому эти методы никогда не вызываются в вашем приложении. Вы также можете переопределить initWithCoder:, который будет вызываться, но я не рекомендую это делать, поскольку в этот момент другие розетки могут быть не подключены.

...