Переключатель многозадачности iOS 7: Navbar появляется черным

В окне предварительного просмотра/многозадачности отображается странное поведение в iOS 7. Вот как это выглядит, когда я устанавливаю это свойство для обоих приложений.

self.navigationController.navigationBar.translucent = NO;

translucent = no Теперь для белого приложения я прокомментировал строку.

Теперь, когда я запускаю его снова и перехожу непосредственно к коммутатору, это то, что я получаю: enter image description here

Если я запустил приложение, а затем перешел на главный экран или любое другое приложение, а затем перешел к коммутатору, это то, что я получаю: enter image description here

Есть ли способ исправить эту проблему при наличии полупрозрачной навигационной панели?

Спасибо.

Ответ 1

Я тоже столкнулся с этим. Поскольку у вас нет содержимого под прозрачной навигационной панелью (и/или панель вкладок или панель инструментов), она иногда может отображаться черным в приложении. Я использовал представление коллекции, которое было ограничено верхними и нижними направляющими макета, поэтому ничего не осталось за панелью вкладок и панель навигации. Когда приложение находится на переднем плане, оно выглядит правильно, потому что Apple должен использовать какой-то цвет фона по умолчанию (возможно, на UIWindow), чтобы вы не видели до трамплина. Этот фоновый цвет кажется ушедшим (или черным), когда в коммутаторе приложений он выглядит так.

Проблема исчезает на контроллерах представлений, которые установлены для расширения под верхними и/или нижними столбцами:

self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeBottom;

или в Interface Builder:

enter image description here

Если это вам не подходит или у вас все еще есть другие контроллеры представлений, которые не распространяются в верхних и нижних барах, вы все равно получите черные полосы в переключателе приложений. То, как я решил, это установить цвет фона UIWindow в приложении appDelegate.

self.window.backgroundColor = [UIColor whiteColor];

Ответ 2

Вместо того, чтобы делать это в коде, вы также можете сделать это через Storyboard.

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

enter image description here

Я считаю это более простым решением.