Swift,Styling两个带代码的导航栏

时间:2016-01-13 07:01:37

标签: ios swift fonts uinavigationbar

我正在开发一款应用程序,顶部需要两个导航栏。我打算为这两个标题输入自定义字体,我是通过我的View Controller viewDidLoad中的代码来完成的,

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "SignPainter-HouseScript", size: 30)!, NSForegroundColorAttributeName:UIColor.whiteColor()]

这样做,导航栏的标题都改变了,这不是我打算做的。如果可能,如何在一个视图控制器中单独自定义每个导航栏?

2 个答案:

答案 0 :(得分:0)

如果您使用外观代理,则会应用全局设置。

要为两个不同的对象获取不同的样式,您可以更改特定对象的相同属性。

self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "SignPainter-HouseScript", size: 30)!, NSForegroundColorAttributeName:UIColor.whiteColor()]

在你的第一个viewController的viewDidLoad:中的代码之上。 它将更改第一个导航控制器的titleTextAttributes

同样获取其他navigationController的对象并更改相同的属性。

答案 1 :(得分:0)

您可以像这样设置自定义导航标题视图: override func viewDidLoad() { super.viewDidLoad() self.navigationItem.titleView = "a custom UIView" } 这样每个viewController都有自己的自定义标题视图。