如何更改导航项的字体?

时间:2015-10-13 11:24:26

标签: ios swift

我的NavigationBar上有几个导航项(后退按钮,保存按钮)。 我试着寻找相关的答案,我找到了一个过时的答案或者没有找到答案。

我在navigationItem.leftBarButtonItem上尝试了setTitleTextAttributes但是没有用。

我设法改变了NavigationBar标题的字体,但就是这样。使用self.navigationBar.titleTextAttribues,与导航项完成相同但不起作用的方法。

编辑:找到解决方案,但我必须在每个视图控制器的viewWillAppear上添加它

let barBtn = UIBarButtonItem(title: "Test", style: UIBarButtonItemStyle.Bordered, target: self, action: "backButtonPressed")
barBtn.setTitleTextAttributes([NSFontAttributeName: UIFont(name: FONT_HERE, size: 12)!], forState: UIControlState.Normal)
self.navigationItem.setHidesBackButton(true, animated: false)
self.navigationItem.setLeftBarButtonItem(barBtn, animated: false)

然后添加backButtonPressed函数,我调用popViewControllerAnimated。

你觉得怎么样?伙计们?有更简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我建议你使用外观协议:https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAppearance_Protocol/index.html

以下是我如何自定义导航栏外观的示例。

//导航栏标题 [[UINavigationBar外观] setTitleTextAttributes:@ {NSFontAttributeName:[UIFont fontWithName:@" myfont"尺寸:20.0f]                                                             NSForegroundColorAttributeName:[UIColor whiteColor]                                                             }];

// Navigation bar buttons and background
[UINavigationBar appearance].tintColor = [UIColor whiteColor];
[UINavigationBar appearance].barTintColor = [UIColor teal];
[UINavigationBar appearance].translucent = NO;