Подтвердить что ты не робот

PresentingViewController - это nil при использовании presentViewController: анимированный: завершение: в iOS 8

Интересно, что недавно кто-то столкнулся с этой проблемой...

Для одного из контроллеров моего представления, только на iOS 8, после вызова presentViewController:animated:completion:, представленный контроллер представления имеет self.presentingController как ноль. Это нормально на iOS7, а также не происходит на другом контроллере представления.

documentation говорит, что он должен быть установлен, если представленный контроллер представления был представлен модально. Учитывая, что он работает в iOS 7, может ли это быть ошибкой iOS 8?

Мне удалось обойти это, используя подход контейнеров с контейнером вида, но было бы хорошо, если бы кто-то это видел раньше и знает причину, вызвавшую это поведение.

спасибо

4b9b3361

Ответ 1

Имел аналогичную проблему с iOS 8, где presentingController равен нулю при проверке значения в viewDidLoad.

Когда вызывается viewDidLoad, нет никакой гарантии, что иерархия диспетчера представлений загружена в дереве навигации. Перемещение логики на более позднюю стадию (например: viewWillAppear) должно решить эту проблему, поскольку к ней должен быть загружен presentingController.