【问题标题】:Reference the back button on UINavigationBar引用 UINavigationBar 上的后退按钮
【发布时间】:2015-08-18 15:29:44
【问题描述】:

我需要引用UINavigationBarUINavigationItem 中的后退按钮。下图中的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";
      

      【讨论】:

        猜你喜欢
        • 2012-05-01
        • 1970-01-01
        • 2023-04-01
        • 2011-01-04
        • 2011-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多