删除 UINavigationBar 后退按钮标题
Remove UINavigationBar back button title
有没有办法删除应用的 所有 视图控制器中后退按钮项目的标题?
注意:重要的是all字。我最接近的是 this solution:
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
但正如我在评论中提到的那样,存在将大标题推到右侧的问题,因此该解决方案无效。
试试这个
self.navigationItem.hidesBackButton = YES;
隐藏显式(您自己设置的)后退按钮
self.navigationItem.leftBarButtonItem = nil;
只需将后退按钮的title
设置为""
这是 swift
中的示例
self.navigationItem.backBarButtonItem = UIBarButtonItem(
title: "",
style: UIBarButtonItemStyle.Plain,
target: nil,
action: nil)
要在所有视图控制器中执行此操作,我通常会创建一个 BaseViewController
,其中我将该行包含在 viewDidLoad
方法中。然后当我有一个 viewcontroller 时,我将它子类化为 BaseViewController
。
如果您还移动 x 值 -150,您的解决方案可能会奏效,但对我来说这听起来像是 hack,因为您仍然一直显示它,但超出了视图范围。
一种未提及的实现方法是使用在标签中显示标题的自定义平铺视图,然后从不实际设置 ViewController 的标题 属性。
这应该在 UIViewController 的扩展或基础中设置 class。
那么您根本不必更改 barButtonItem,您可以选择对标题进行更多更改(包括字幕等)
像这样:
extension UIViewController {
func setTitleView(title:String) {
let titleView = CustomTitleView()
titleView.titleLabel.text = title
self.navigationItem.titleView = titleView
}
}
如果您设置一个简单的 CustomTitleView nib,带有一个标签出口和一些约束。
编辑:
标题 属性 需要在所有 VC 上设置为“ ”。这样,下一个按下的 VC 中的后退按钮文本将被命名为“”
要更改 UINavigationController
的后退按钮的标题,您只需:
Swift:
navigationController?.navigationBar.topItem?.title = ""
您可以将其添加到正在推送的新 viewController 的 viewWillAppear
中,或者添加到 UIViewController
的自定义基础 class 中。
有没有办法删除应用的 所有 视图控制器中后退按钮项目的标题?
注意:重要的是all字。我最接近的是 this solution:
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
但正如我在评论中提到的那样,存在将大标题推到右侧的问题,因此该解决方案无效。
试试这个
self.navigationItem.hidesBackButton = YES;
隐藏显式(您自己设置的)后退按钮
self.navigationItem.leftBarButtonItem = nil;
只需将后退按钮的title
设置为""
这是 swift
中的示例self.navigationItem.backBarButtonItem = UIBarButtonItem(
title: "",
style: UIBarButtonItemStyle.Plain,
target: nil,
action: nil)
要在所有视图控制器中执行此操作,我通常会创建一个 BaseViewController
,其中我将该行包含在 viewDidLoad
方法中。然后当我有一个 viewcontroller 时,我将它子类化为 BaseViewController
。
如果您还移动 x 值 -150,您的解决方案可能会奏效,但对我来说这听起来像是 hack,因为您仍然一直显示它,但超出了视图范围。
一种未提及的实现方法是使用在标签中显示标题的自定义平铺视图,然后从不实际设置 ViewController 的标题 属性。
这应该在 UIViewController 的扩展或基础中设置 class。
那么您根本不必更改 barButtonItem,您可以选择对标题进行更多更改(包括字幕等)
像这样:
extension UIViewController {
func setTitleView(title:String) {
let titleView = CustomTitleView()
titleView.titleLabel.text = title
self.navigationItem.titleView = titleView
}
}
如果您设置一个简单的 CustomTitleView nib,带有一个标签出口和一些约束。
编辑:
标题 属性 需要在所有 VC 上设置为“ ”。这样,下一个按下的 VC 中的后退按钮文本将被命名为“”
要更改 UINavigationController
的后退按钮的标题,您只需:
Swift:
navigationController?.navigationBar.topItem?.title = ""
您可以将其添加到正在推送的新 viewController 的 viewWillAppear
中,或者添加到 UIViewController
的自定义基础 class 中。