当前位置: 首页 > 面试题库 >

如何更改导航栏的后退按钮的字体?

常元章
2023-03-14
问题内容

如何更改导航栏的后退按钮的字体。

后退按钮可以是“后退”,也可以是前一个视图控制器的标题。

我认为这viewDidLoad可以工作:

navigationController?.navigationItem.leftBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "FONTNAME", size: 20)!], forState: UIControlState.Normal)

leftBarButton?可选的return nil


问题答案:

刚刚测试了您的代码,看来行返回的原因nil实际上是因为name: "FONTNAME"返回nil。因此,如果您将该name属性设置为有效的字体名称,则代码应该运行无错误-
即使navigationController?.navigationItem.leftBarButtonItem显式设置为nil。

但是无论如何,正如我在测试中看到的那样,这条线不会给您显然想要的结果。前导的navigationController可选内容不应该存在,因为它访问您UINavigationController的视图而不是当前视图。只需使用UIViewController自己的navigationItem属性即可leftBarButtonItem直接访问其属性,例如:

let backButton = UIBarButtonItem(title: "< Back", style: UIBarButtonItemStyle.Plain, target: self, action: "goBack")
navigationItem.leftBarButtonItem = backButton
navigationItem.leftBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Chalkduster", size: 20)!], forState: UIControlState.Normal)

编辑
:从您在此答案下发布的评论看来,好像您实际上并不想设置,leftBarButtonItem而是backBarButtonItem因为您不想执行自定义操作,而不是返回到先前的视图控制器。

因此,在该先前的视图控制器(即要显示自定义后退按钮项之前的视图)中,您可以设置自定义后退按钮,而无需执行以下操作:

let backButton = UIBarButtonItem(title: "< Back", style: UIBarButtonItemStyle.Plain, target: self, action: nil)
backButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Chalkduster", size: 20)!], forState: UIControlState.Normal)
navigationItem.backBarButtonItem = backButton


 类似资料:
  • 在我的应用程序中,我使用动作栏和导航抽屉。操作栏中有一个按钮用于打开和关闭导航抽屉。我想把它的颜色改成红色。我该怎么做?

  • 问题内容: 当我按下a时,它在new的后退按钮中有一些标题,如果标题中包含很多文本,则在iPhone 4s中看起来不太好,所以我想删除它。 如果我在函数中添加一些代码,那将是一个麻烦。 还有更好的方法吗? 问题答案: 如果要返回箭头,则将以下代码放入文件中。 另一个选择在下面给出。 在 在 更新: 更新SWIFT 4.1: 使用偏移 因此可能是您的问题已解决。 快乐的编码。

  • 我在图片中写的所有单词我需要更改导航颜色按钮警告颜色按钮非android:statusBarColor

  • 我不能改变返回按钮的颜色。我用的是工具栏材质设计。在我的应用程序中,我应用了工具栏的黑色背景,但默认情况下,背面设计是黑色的,这就是为什么我只想更改此返回按钮的颜色。请给我解决办法。 非常感谢。

  • 问题内容: 我正在尝试在控制器的导航栏中设置后退按钮图像,这是viewDidLoad()中的代码: 我试图将它们放到viewWillLoad中,但是得到了同样的错误 控制台出现错误消息: 我不知道哪一部分出了问题。似乎back_img不是nil,但我收到错误消息说它为nil 谢谢! 问题答案: 我已经研究了示例代码。1)在情节提要中创建一个条形按钮项。2)使用IBOutlet将按钮链接到控制器3)