2015-06-17 3 views
2

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

В моей раскадровке у меня есть табличный вид с встроенным навигационным контроллером и отдельный выход в другой вид таблицы со встроенным навигационным контроллером. Основываясь на дизайне моего приложения, я ищу панель навигации в первом представлении таблицы, чтобы иметь другой цвет фона (оттенка), чем панель навигации во втором представлении таблицы. Вот мой макет;

Multiple Navigation Controllers

За выше, я поставил цвет моей первой панели навигации контроллера, чтобы быть зеленым, и мой второй Навигационный контроллер быть синим. Однако, когда я создаю и запускаю приложение, во втором представлении таблицы есть зеленый контроллер навигации, тогда как я установил его в синем в Interface Builder.

Я попытался использовать следующий код в файле SecondTableViewController.swift;

navigationController.navigationBar.barTintColor = UIColor.blueColor() self.navigationBar.tintColor = UIColor.blueColor()

Возможно ли это? Или я не понимаю, как работает контроллер навигации?

+0

также необходимо установить полупрозрачность ... self.navigationController.navigationBar.translucent = false – Woodstock

ответ

2

Чтобы установить все экземпляры UINavigationBar сразу же цвета сделать это:

UINavigationBar.appearance().barTintColor = UIColor.greenColor() 

Для установки каждого экземпляра (как вам нужно), попробуйте следующее:

self.navigationBar.tintColor = UIColor.blueColor() 
self.navigationController.navigationBar.translucent = false 
+0

Благодарим вас за ответ @Woodstock. Я попробовал этот код, но у меня такие же симптомы. Если я поместил этот код в свой файл ** FirstTableViewController.swift **, он изменит планку на зеленый для обоих моих первых и вторых табличных представлений. Если я поместил этот код в свой ** SecondTableViewController.swift ** файл, я не могу самостоятельно установить цвет бара только для моего второго представления таблицы. – ZbadhabitZ

+0

@AlanLewis проверить мой обновленный ответ – Woodstock

+0

Спасибо @Woodstock. Я думаю, что у меня есть концептуальная проблема. Я уверен, что ваш код верен, но все, что я делаю с панелью навигации на первом контроллере навигации, - это все, что повлияет на второе. Если я полностью скрою панель навигации на первом навигационном контроллере, она скрывает ее от второго. Если я попытаюсь скрыть панель навигации на втором контроллере навигации, но не первый, она все еще будет видна. Это похоже на то, что второй контроллер навигации не будет прослушивать какую-либо кодировку, он берет только то, что видит с первого. – ZbadhabitZ

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