使用导航栏和标签栏创建主题问题

时间:2019-02-07 12:45:24

标签: swift

我创建了此结构以能够修改申请时间。它适用于为导航栏和选项卡栏绘制的所有元素。我已经尝试了几种方法,但是没有用,有人可以向我指出一些建议。谢谢

通过开关,我可以使所有元素的值都更改,除了导航栏和标签栏所述。

结构:

theme file
ThemeProtocol file

然后主题文件

 dark
 Default

文件主题

import UIKit

class Theme {

    static  var current: ThemeProtocol = Default()

}

文件ThemeProtocol

import UIKit

protocol ThemeProtocol {

    var backgroundColorView: UIColor { get }
    var tint: UIColor { get }
    var coloreTesto: UIColor { get }
    var coloreTabella: UIColor { get }
    var colorecella: UIColor { get }
    var coloreLineaTabella: UIColor { get }
    var coloreTestoBottone: UIColor { get }
}

file Dark e Default
import UIKit

class Dark: ThemeProtocol {

    var backgroundColorView: UIColor = UIColor.black
    var tint: UIColor = UIColor.blue
    var coloreTesto: UIColor = UIColor.white
    var coloreTabella: UIColor = UIColor.black
    var colorecella: UIColor = UIColor.black
    var coloreLineaTabella: UIColor = UIColor.white
    var coloreTestoBottone: UIColor = UIColor.white

}

例如,如果我每次在swicth上单击时,将这段代码放入放置在viewDidLoad中的文件中,颜色就会发生变化,但我无法在导航和标签栏上做到这一点

override func viewDidLoad () {
         super.viewDidLoad ()
         view.backgroundColor = Theme.current.backgroundColorView
     }

1 个答案:

答案 0 :(得分:0)

我认为您可以使用:navigationController?.navigationBar.barTintColor = <Your color>

我提出了一个示例,但是使用了一个框架。但是我的样品应该给您解决方案。您可以在这里找到示例:https://github.com/enigmatic7earth/theme-sample