麻烦隐藏backbarbutton文本

时间:2018-04-16 14:38:26

标签: ios uibarbuttonitem navigationitem

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

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

文字仍为“返回”。

另一方面执行:

self.navigationItem.hidesBackButton

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

4 个答案:

答案 0 :(得分:0)

斯威夫特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
}

答案 1 :(得分:0)

root/main ViewController -

中添加这一简单的代码
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)
    }

输出 -

enter image description here

答案 2 :(得分:0)

我使用以下技术隐藏后退按钮。每当我执行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)
    }
}

On didSelect连续,我正在对DetailVC进行推送segue 。我的后退按钮只是箭头

enter image description here

希望有所帮助

答案 3 :(得分:0)

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

超级沮丧......