2017-02-21 5 views
0

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

VC 1 имеет оранжевую полоску с белым текстом, который я настроил как так:

func stylingStuffs(){ 
    self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 1) 
    self.navigationController?.navigationBar.backgroundColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 1) 
    self.navigationController?.navigationBar.tintColor = UIColor.white 
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white] 
    self.navigationController?.navigationBar.isTranslucent = false 
    UIApplication.shared.statusBarStyle = .lightContent 
} 

VC 2 имеет прозрачную панель навигации и код, который:

func stylingStuffs(){ 
    navigationController?.setNavigationBarHidden(false, animated: true) 
    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default) 
    self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 0) 
    self.navigationController?.navigationBar.backgroundColor = UIColor(red: 0.94, green: 0.38, blue: 0.24, alpha: 0) 
    navigationController?.navigationBar.shadowImage = UIImage() 
    navigationController?.navigationBar.isTranslucent = true 
    navigationController?.navigationBar.tintColor = UIColor.white 
    self.navigationController?.navigationBar.barStyle = .default 
    UIApplication.shared.statusBarStyle = .lightContent 
} 

Когда Я перемещаюсь из VC1-> VC2, все работает нормально, когда я перемещаюсь из VC2-> VC1, Navbar VC1 теперь белая/прозрачная, а также строка состояния.

Как исправить это или, я думаю, сбросить стили при возврате в VC1?

Спасибо, продвинутый!

+1

Вы смущены, потому что на самом деле только одна панели навигации. Это часть одного навигационного контроллера, в котором находятся оба контроллера. – rmaddy

+0

Да, вы должны сбросить стили при возврате в vc1. – Kingalione

ответ

0

первый взгляд VC 1 контроллер viewDidAppear вызова stylingStuffs()

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated: animated) 

    stylingStuffs() 
} 

@rmaddy комментарий

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

поэтому необходимо сбросить навигации стиля бара для VC 1

+0

@Kingalione UINavigationBar.appearance(). SetBackgroundImage (UIImage(), для: UIBarMetricsDefault) –

+0

Спасибо! Это решило мою проблему. Такая ошибка noob lol – emktn

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