Swift,用代码设计两个导航栏

Swift, Styling two navigation bar with code

我正在开发一个顶部需要两个导航栏的应用程序。我正计划为两个标题输入自定义字体,我是通过我的视图控制器 viewDidLoad 中的代码完成的,就像这样,

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

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

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

要为两个不同的对象获得不同的样式,您必须为特定对象更改相同的 属性。

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

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

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

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