导航栏颜色未保存
Posted
技术标签:
【中文标题】导航栏颜色未保存【英文标题】:Navigation Bar color is not saving 【发布时间】:2017-02-05 12:18:29 【问题描述】:我有两个不同导航栏的视图控制器。每个导航栏都有不同的颜色。
VC1 and VC2
如果我从 VC1 移动到 VC2,我会看到不同的颜色,但如果向后移动,我会从 VC2 看到 VC1 导航栏的颜色。
View Controller 1 Returned
所以来自 VC1 的导航栏颜色没有正确保存
VC1:
import UIKit
class TableViewController_1: UITableViewController
override func viewDidLoad()
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = UIColor(red: 56.0/255.0, green: 208.0/255.0, blue: 125.0/255.0, alpha: 1.00)
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
VC2:
import UIKit
class TableViewController_2: UIViewController
override func viewDidLoad()
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = UIColor(red: 105.0/255.0, green: 28.0/255.0, blue: 56.0/255.0, alpha: 1.00)
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
如何在VC1中制作固定导航栏颜色?谢谢你的帮助!
【问题讨论】:
【参考方案1】:不要在 viewDidLoad 中更改导航栏的颜色,而是在 viewWillAppear 中进行:
VC1
override func viewWillAppear(_ animated: Bool)
self.navigationController?.navigationBar.barTintColor = UIColor(red: 56.0/255.0, green: 208.0/255.0, blue: 125.0/255.0, alpha: 1.00)
VC2
override func viewWillAppear(_ animated: Bool)
self.navigationController?.navigationBar.barTintColor = UIColor(red: 105.0/255.0, green: 28.0/255.0, blue: 56.0/255.0, alpha: 1.00)
【讨论】:
【参考方案2】:如果你从 VC1 到 VC2,它们有不同的导航控制器。因此,导航栏颜色应该没有任何问题。因为他们使用不同的导航。但是,如果您从 VC1 推送到 VC2,并且当您从 VC2 移回 VC1 时,您应该在 viewWillAppear
方法中设置 VC1 的导航栏颜色。因为当您移回 VC1 时,由于 VC1 已经在内存中创建,它会继续以 viewWillAppear
运行,而不是 viewDidLoad
。
【讨论】:
以上是关于导航栏颜色未保存的主要内容,如果未能解决你的问题,请参考以下文章