Я вижу, когда я переносил свое приложение в iOS 7, панель навигации отображается в строке состояния при представлении контроллера вида. Я думаю, что многие люди столкнулись с этой проблемой. Вот скриншот того, что я вижу:
Требования:
-
Новый вид должен выглядеть "модально", т.е. мне нужен presentViewController.
-
Отобразите какую-нибудь навигационную панель или панель инструментов, при этом строка состояния примет цвет фона стиля навигационной панели ala iOS 7.
-
Он должен работать на iOS 6.
-
Я использую xib для обработки макета, с включенным автозапуском.
Параметры:
A. Сдвиньте свой ракурс вниз.
Ugh, вернемся ли мы к pre-iOS 5 дням и сбрасываем фреймы? Также, как правило, не рекомендуется смешивать с автозапуском.
В. Добавьте немного вверху вверх под панелью навигации.
Одним из недостатков опций A и B является то, что строка состояния не будет встраиваться в ваш навигатор:
С. Программно добавьте ограничения.
Основным недостатком является то, что вам придется гадать с ограничениями и вычислять высоту панели навигации и состояния. Тьфу.
D. Протяните панель навигации/высоту панели инструментов, чтобы включить область строки состояния.
Выглядит хорошо на iOS 7, но ломается на iOS 6. Вам нужно будет программно обновить высоту панели навигации, а также убедиться, что остальная часть вашего просмотра обновляется соответствующим образом. Грязное.
E. Беспорядок с дельтами iOS6/7 в IB.
Несколько недостатков: вы будете жестко кодировать дельта ios6/7. Также не работает с автозагрузкой.
F. Используйте вложенный UINavigationController.
Это обходной путь, который я выбрал. См. Ответ ниже.