IBOutlet равен НУЛЮ при использовании прямых объявлений для вызова класса?
-
20-09-2019 - |
Вопрос
У меня были огромные проблемы с этим, поэтому я нарисовал диаграмму...
альтернативный текст http://tomsfil.es/7bdead0a.png
Я успешно добираюсь до КЛАССА A - МЕТОД B, но в этот момент IBOutlet Z равен нулю?:( Есть какие-нибудь идеи?
примечание Кто-то сказал мне, что это может быть чрезмерный выпуск и использовать NSZombieEnabled, но это меня смутило
Решение
Все зависит от того, когда вы вызываете класс.Сразу после того, как вы создаете контроллер представления с помощью initWithNibName , на самом деле еще ничего не подключено - IBOutlets создаются и подключаются только после создания представления.
Один из трюков заключается в том, что вы можете просто запросить view controller для .view, вот так:
myViewController.view;
Затем представление будет создано, и IBOutlet будет существовать.Однако лучшим методом является создание свойств в заданном вами контроллере представления, а затем либо в viewDidLoad
, или в viewWillAppear
вы используете эти свойства для установки значений для своих торговых точек.