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

当前返回按钮:

<返回

需要的后退按钮:

< 其他任何东西

这些都没有奏效:

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

当前回答

试试这个…它将工作....

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    self.title = ""
}

上面的代码将隐藏文本,只显示导航栏上的后退箭头。

其他回答

back按钮属于前一个视图控制器,而不是当前显示在屏幕上的那个。 要修改返回按钮,你应该在按之前更新它,在启动segue的视图控制器上:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Something Else"
    navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

Swift 3,4和5:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Something Else"
    navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

OR

// in your viewDidLoad or viewWillAppear
navigationItem.backBarButtonItem = UIBarButtonItem(
    title: "Something Else", style: .plain, target: nil, action: nil)

如果你正在从页面视图控制器页面推送一个视图控制器,你不能更新导航控制器的后退按钮标题。要解决这个问题,创建一个委托回到你的父视图控制器(你也可以遍历视图控制器层次结构回到父视图控制器)。

此外,后退按钮有字符限制。如果超过该字符限制,系统将默认为“返回”。它不会为你截断。例如:

backItem.title = "Birthdays/Anniversaries" // Get's converted to "Back".
backItem.title = "Birthdays/Anniversa…" // Fits and shows as is.

解决方案检查和工作在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
    }
}

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

navigationItem.backButtonTitle = ""

如果你正在为视图控制器使用xib文件,那么在你的视图控制器类中这样做。

class AboutUsViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    edgesForExtendedLayout = []
    setUpNavBar()
}

func setUpNavBar(){
    //For title in navigation bar
    self.navigationController?.view.backgroundColor = UIColor.white
    self.navigationController?.view.tintColor = UIColor.orange
    self.navigationItem.title = "About Us"

    //For back button in navigation bar
    let backButton = UIBarButtonItem()
    backButton.title = "Back"
    self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton
}

}

结果将是: