Окончательный EDIT
(Вместо того, чтобы иметь слишком длинный вопрос с изменениями, делающими окончательное редактирование для уточнения, см. другие изменения, если это необходимо).
Настройка контроллера
У меня есть приложение, которое настроено следующим образом:
InitialViewController (подкласс ECSlidingViewController)
Главный навигационный контроллер (подкласс UINavigationController
)
Main Home View Controller (подкласс UIViewController
)
В viewDidLoad
элемента initialViewController я загружаю главный навигационный контроллер с контроллером Home View в качестве его корня.
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainNavVC"];
Проблема
При первой загрузке приложения строка состояния и панель навигации разделены.
Это желаемый эффект.
Однако затем я загружаю контроллер модального представления и закрываю его, используя стандартные методы:
[self performSegueWithIdentifier:@"LoadSelectOpponentVC" sender:self];
Затем закройте:
[self dismissViewControllerAnimated:YES completion:nil];
Это, в свою очередь, приводит к тому, что главный контроллер навигации (удерживая контроллер домашнего вида) неправильно отображает строку состояния и перекрывается:
Тестирование
- Настройка plist установлена на YES -
View controller-based status bar appearance
- Я попытался установить
edgesForExtendedLayout
на соответствующий none, но никаких изменений.
Вход
Я попытался вывести некоторые фреймы, чтобы увидеть, где возникла проблема:
При первой загрузке:
Main Nav VC - View Frame - {{0, 0}, {320, 480}}
Main Nav VC - Nav Bar Frame - {{0, 0}, {320, 44}}
Initial VC - View Frame - {{0, 0}, {320, 480}}
Home VC - View Frame - {{0, 0}, {320, 480}} -- viewDidLoad Home VC
Home VC - View Frame - {{0, 64}, {320, 416}} -- viewWillAppear Home VC
--- After Modal is opened/closed ----
Home VC - View Frame - {{0, 64}, {320, 416}} -- viewWillAppear Home VC
Main Nav VC - View Frame - {{0, 0}, {320, 480}} -- viewWillAppear Main Nav
Main Nav VC - Nav Bar Frame - {{0, 20}, {320, 44}} -- viewWillAppear Main Nav
Home VC - View Frame - {{0, 44}, {320, 436}} -- viewDidAppear Home VC