2015-07-31 2 views
3

Я работаю над приложением IOS, которое было запущено со стандартной раскладкой приложений Master/Detail. Я не изменил исходный макет, кроме чтобы добавить дополнительный сегмент из контроллера Detail View в новый UIViewcontroller, который я представляю своим классом. Я бы хотел, чтобы панель навигации была прозрачной на контроллере представления, которую я добавил, и я нашел множество примеров того, как это сделать в Интернете. Проблема, с которой я столкнулась, заключается в том, что при тестировании на ipad панель навигации прозрачна, как ожидалось, но на и Iphone, независимо от того, что я делаю, панель навигации остается неизменной.Панель навигации IOS в проекте Master/Detail для раскадровки прозрачна на ipad, но не на iphone

Я запускаю бета-версию Xcode 7, и все кодируется в Swift.

В моей viewDidLoad функции для моего View Controller у меня есть следующие строки кода:

self.navigationController!.navigationBar.translucent = true; 
self.navigationController!.navigationBar.shadowImage = UIImage() 
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default) 
self.navigationController.navigationBar.backgroundColor = UIColor.ClearColor() 

Я попытался эти строки в кучу разных способов ... вот некоторые из вещей, которые я» ve попробовал

  1. запуск этих линий в viewWillAppear вместо этого.
  2. Выполнение того же базового кода на объекте, возвращаемом из UINavigationBar.appearance()
  3. Получение родительского контроллера представления и выполнение тех же настроек в его навигационной панели.

Ничто из этих изменений не повлияло на поведение. Похоже, что любое устройство IOS, где главный контроллер просмотра отображает первый полноэкранный режим, покидает навигационную панель нормально. В то время как любое устройство, отображающее представление деталей или оба представления, сначала показывает прозрачную панель навигации. Я думаю, что мне нужно открыть панель навигации по-разному в этих сценариях .. но у меня нет идей.

Спасибо!

+1

Вы когда-нибудь это выясняли? У меня такая же проблема –

ответ

-1

поставил

let navigationController = splitViewController!.viewControllers[splitViewController!.viewControllers.count-1] as! UINavigationController 

на верхней части вашего кода измените self.navigationController! с navigationController и он будет работать.

 Смежные вопросы

  • Нет связанных вопросов^_^