【问题标题】:Swift, Styling two navigation bar with codeSwift,用代码样式化两个导航栏
【发布时间】:2016-04-18 01:10:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift fonts uinavigationbar


    【解决方案1】:

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

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

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

    在您的第一个 viewController 的 viewDidLoad: 中写入上述代码。 它将改变第一个导航控制器的titleTextAttributes

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

    【讨论】:

    • 它对我有用,谢谢你的详细解释!祝先生今天愉快。
    【解决方案2】:

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

    【讨论】:

    • 您好,感谢您的回复!然而,事情并没有那么简单。接受的答案更完整。但再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多