如何删除后退按钮的文本。

当前返回按钮:

<返回

需要的后退按钮:

< 其他任何东西

这些都没有奏效:

self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title

当前回答

这对我很管用。斯威夫特5

navigationItem.backButtonTitle = ""

其他回答

override func viewWillAppear(_ animated: Bool) {

    self.tabBarController?.navigationItem.title = "Notes"

    let sendButton = UIBarButtonItem(title: "New", style: .plain, target: self, action: #selector(goToNoteEditorViewController))

    self.tabBarController?.navigationItem.rightBarButtonItem = sendButton
}

func goToNoteEditorViewController(){
   // action what you want
}

希望能有所帮助!!3 #迅速

后退按钮文本取自父视图控制器的导航项标题。所以无论你在前一个视图控制器的导航项标题上设置了什么,都会显示在当前视图控制器的后退按钮文本上。 你可以把""作为导航项标题在父视图控制器的viewWillAppear方法中。

self.navigationItem.title = ""

另一种方法是

self.navigationController?.navigationBar.topItem?.title = ""

在当前视图控制器的viewWillAppear方法中。如果导航堆栈嵌套过多,这将导致一些其他问题。

解决方案检查和工作在Swift 5

下面是针对不同情况的一些解决方案:

1. 从后退按钮中删除文本

从后退按钮中删除文本的最佳解决方案是在viewDidLoad()中添加:

navigationItem.backBarButtonItem = UIBarButtonItem()

2. 在返回按钮上设置自己的文本

如果你想设置你自己的标题,可以通过设置backButton的title:

let backButton = UIBarButtonItem()
backButton.title = "My Title"
navigationItem.backBarButtonItem = backItem

3.清空所有VC上的返回按钮

如果你想在整个应用程序中创建通用样式-只有箭头返回而没有文本,为所有的视图控制器创建基础VC:

class BaseViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.backBarButtonItem = UIBarButtonItem()
    }
}

上面给出的解决方案可以让你在将来自定义返回按钮,如果你以后想要做一些例外,通过添加额外的变量并在特定的ViewController中重写它,f.x:

class BaseViewController: UIViewController {

    var customBackButtonTitle: String?

    override func viewDidLoad() {
        super.viewDidLoad()

        var backButton = UIBarButtonItem()
        if let text = customBackButtonTitle {
            backButton.title = text
        }
        navigationItem.backBarButtonItem = backButton
    }
}

虽然这些答案解决了问题,但这可能是一些有用的

class MainNavigatioController: UINavigationController {

    override func pushViewController(_ viewController: UIViewController, animated: Bool) {
        // first
        let backItem = UIBarButtonItem()
        backItem.title = "رجوع"
        self.viewControllers.last?.navigationItem.backBarButtonItem = backItem
        // then
        super.pushViewController(viewController, animated: animated)

    }

}

在呈现控制器的viewDidLoad方法中添加:

// hide navigation bar title in the next controller
let backButton = UIBarButtonItem(title: "", style:.Plain, target: nil, action: nil)
navigationItem.backBarButtonItem = backButton