【问题标题】:Trouble hiding backbarbutton text隐藏后退按钮文本时遇到问题
【发布时间】:2018-04-16 14:38:25
【问题描述】:

由于某种原因,此代码不会隐藏后退按钮文本。

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .Plain, target: nil, action: nil)}

文本保持“返回”。

另一方面执行:

self.navigationItem.hidesBackButton

确实隐藏了按钮。我在 viewDidLoad 中执行了这两个操作。任何想法如何删除该文本并仅保留箭头?我已经阅读了这个网站上的建议。

【问题讨论】:

  • 没用 :-( 这要了我的命。
  • 在下面测试了我的答案并为我工作
  • 非常感谢您的回答。这些示例都不起作用。这太疯狂了。我可以隐藏它,这样我就可以使用正确的导航项在正确的视图上。
  • 可以隐藏后退按钮,然后添加leftBarButtonItem
  • 这是个好主意。我怎么会有一个后退箭头?

标签: ios uibarbuttonitem navigationitem


【解决方案1】:

斯威夫特 4:

/// This will hide the back button title
private func hideBackButtonTitle(){
    let backButtonItem = UIBarButtonItem(title:"", style:.plain, target:nil, action:nil)
    backButtonItem.setTitleTextAttributes([.foregroundColor: UIColor.clear], for: .normal)
    backButtonItem.setTitleTextAttributes([.foregroundColor: UIColor.clear], for: .highlighted)
    self.navigationItem.backBarButtonItem = backButtonItem
}

【讨论】:

    【解决方案2】:

    在你的root/mainViewController中添加这行简单的代码-

    self.navigationItem.backBarButtonItem = UIBarButtonItem(title:"", style:.plain, target:nil, action:nil)
    

    代码-

    import UIKit
    
    class ViewController: UIViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
            self.navigationItem.backBarButtonItem = UIBarButtonItem(title:"", style:.plain, target:nil, action:nil)
        }
    

    输出 -

    【讨论】:

      【解决方案3】:

      我正在使用以下技术来隐藏后退按钮。每当我 执行 segue 或 推送 一个新的视图控制器到导航堆栈时,我都会调用此函数并将 self 传递给参数。

      func clearBackButtonText(vc : UIViewController) {
      
        let backItem = UIBarButtonItem()
        backItem.title = ""
        vc.navigationItem.backBarButtonItem = backItem
      
      }
      //call this function in view didLoad of your view controller OR before pushing a view controller on navigation stack
      clearBackButtonText(vc: self)
      

      参见示例

      在 TableVC 的 Viewdidload 上,我正在调用该函数

      class TableVC: UIViewController {
         override func viewDidLoad() {
      
             super.viewDidLoad()
             clearBackButtonText(vc: self)
          }
      }
      

      在 didSelect 的一行中,我正在向 DetailVC 执行 push segue。而我的后退按钮只有箭头

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        感谢您的回复。事实证明,后退按钮的标题将设置为它将返回的视图控制器的标题。我所要做的就是为之前的 ViewController 设置 navigationItem.title = " "。

        超级郁闷……

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-06-29
          • 1970-01-01
          • 1970-01-01
          • 2015-03-27
          • 1970-01-01
          • 2015-12-12
          • 2022-09-24
          相关资源
          最近更新 更多