У меня есть универсальное приложение iOS, которое использует стандарт UISplitViewController
.Почему self.splitViewController неожиданно отсутствует в viewDidLoad?
Почти так как я начал работать на приложении, которое я имел следующий код в месте, чтобы связать контроллер мастер вида слева с контроллером представления детали справа:
- (void)viewDidLoad
{
[super viewDidLoad];
self.detailViewController = (CustomViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
}
После некоторых последних изменений, которые последние линия перестала работать и, таким образом, нарушила некоторые функции. Причиной такого поведения является то, что self.splitViewController
- nil
. Перемещение последней строки на viewWillAppear:
устраняет проблему, но ИМХО это не совсем правильно.
Изменения, которые я сделал, на самом деле не связаны с этим, я не вносил изменений в иерархию контроллера или используемую раскадровку. Поэтому я не могу объяснить, откуда это происходит. Любой намек был бы оценен.
Проверка '' nil' в viewDidLoad' не помогает, а также инициализация контроллера вручную, это не то, что мне нужно заботиться о том, когда с помощью раскадровки. Однако я мог бы просто вызвать '[[self.splitViewController.viewControllers lastObject] topViewController]' в getter. – Koraktor