UINavigationController проблема с вращением модального диалога - PullRequest
2 голосов
/ 25 мая 2011

У меня есть приложение со следующей структурой:

UIWindow
   -- GlobalNavigationController.view (subclasses UIViewController)
      -- UIView
      -- UINavigationController.view

GlobalNavigationController перенаправляет все события вращения и жизненного цикла (viewWillAppear, willRotateToInterfaceOrientation и т. Д.) В контроллер навигации.

Все работаеточень хорошо, пока вы:

  1. Откройте модальное диалоговое окно
  2. Поверните в альбомную (или в другую ориентацию)
  3. Закройте диалоговое окно.

На данный момент кажется, что базовые представления в UINavigationController не были проинформированы о некоторых событиях ротации.

Вы получаете представления, подобные этим:

Screenshot after rotation

Есть идеи?Спасибо

Ответы [ 3 ]

0 голосов
/ 25 мая 2011

Я столкнулся с похожей проблемой в приложении, над которым работал. Оказывается, моя проблема заключалась в том, что я неправильно указал, как должен расти и растягиваться мой элемент управления (например, верхняя панель инструментов).

Если проблема не в коде, взгляните на IB и посмотрите, не определили ли вы автострано и т. Д.

0 голосов
/ 26 мая 2011

Это оказалось проблемой, когда у контроллера навигации не было установлено свойство parentViewController.Люблю недокументированные ошибки ...

Простое решение заключалось в том, чтобы поместить это после инициализации контроллера навигации:

[_navigationController setValue:self forKey:@"_parentViewController"];

Подсказки к PrimaryFeather за идею: Контроллер модального представления не будетЗапуск в ландшафтном режиме

0 голосов
/ 25 мая 2011

В вашем контроллере модального вида попробуйте установить следующее:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self.parentViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}

Это отправляет сообщение о том, что представление повернуто к его родителю, то есть представлению, которое представляет модальное окно

...