【问题标题】:Reference the back button on UINavigationBar引用 UINavigationBar 上的后退按钮
【发布时间】:2015-08-18 15:29:44
【问题描述】:
我需要引用UINavigationBar 或UINavigationItem 中的后退按钮。下图中的Back 按钮。
我没有自定义按钮,因此
navigationItem.backBarButtonItem
navigationItem.leftBarButtonItem
这两个都是零。
有什么方法可以在不自定义的情况下获得对按钮的引用?
参考:
更新:我的comment 可能有助于理解为什么我不想自定义后退按钮。 :)
【问题讨论】:
标签:
ios
swift
uinavigationbar
uinavigationitem
【解决方案1】:
Documentation 这么说 backBarButtonItem:
当该项是导航栏的后项时——当它是
顶部项目下方的下一个项目 - 它可以表示为上的后退按钮
导航栏。使用此属性指定后退按钮。这
默认值为显示导航项标题的按钮。
所以backBarButtonItem默认总是nil,因为它属于前一个视图控制器。获得非零引用的唯一方法是自定义它。
如果你只是想更改名称,可以在之前的 View Controller 中完成。
【解决方案2】:
参考我的用例 - Ayush's comment
在获得具体解决方案之前,我在导航栏下方(后退按钮下方)创建了一个虚拟视图来显示提示。这是代码。
let v = UIView(frame: CGRectMake(0, 0, 50, 0))
view.addSubview(v)
let tipText = "Here it the back button"
EasyTipView.showAnimated(true,
forView: v,
withinSuperview: view,
text:tipText,
preferences: nil,
delegate: self)
【解决方案3】:
试试这个
let backItem = UIBarButtonItem(title: "Custom Text HERE", style: .Bordered, target: nil, action: nil)
navigationItem.backBarButtonItem = backItem
【解决方案4】:
试试这个可能对你有帮助。
UINavigationItem *i = [self.navigationController.navigationBar.items firstObject];
i.title = @"Hai";