Swift 4 从后退按钮中删除文本

Geo*_*nts 0 navigation back-button title swift

伙计们,我想从后退按钮中删除文本。我使用此代码从VC1导航到VS2(登录表单)。我试图将此代码添加到 VC2 但什么也没有。

self.navigationController?.navigationBar.backItem?.title = ""
Run Code Online (Sandbox Code Playgroud)

代码:

@IBAction func didSelectSegment(_ sender: UISegmentedControl) {

    let vcName = vcNames[sender.selectedSegmentIndex]
    if vcName == "NQTPastRecordViewController" && loggined() == false {
        let alert = alertAskLogin({
            let signInVC = getController("EVSignInViewController")

            self.navigationController?.pushViewController(signInVC, animated: true)
        })
        self.present(alert, animated: true, completion: nil)
        segmentControll.selectedSegmentIndex = 0
        return
    }
    self.container.swipeToController(at: sender.selectedSegmentIndex)

}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

dig*_*und 5

有几种方法可以实现您想要做的事情。

当您将视图控制器 (VC2) 推送到第一个控制器 (VC1) 的导航堆栈时,后退按钮默认使用第一个屏幕的标题作为显示第二个屏幕时的后退按钮标题。

在此处输入图片说明

因此,在 VC1 中,您可以在压入堆栈之前将视图控制器的标题设置为空字符串

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = ""
}
Run Code Online (Sandbox Code Playgroud)

这将为您留下一个只有“<”字符的后退按钮。

在此处输入图片说明

第二种方法是在父视图控制器(VC1)中设置一个自定义的后退栏按钮项

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

它将后退按钮标题设置为您在 UIBarButtonItem 标题字段中设置的任何内容。

因此,您的实现可能看起来像这样:(选择一个选项或另一个注释的选项,如果您同时执行自定义栏按钮项会覆盖标题。)

@IBAction func didSelectSegment(_ sender: UISegmentedControl) {

    let vcName = vcNames[sender.selectedSegmentIndex]
    if vcName == "NQTPastRecordViewController" && loggined() == false {
        let alert = alertAskLogin({
            let signInVC = getController("EVSignInViewController")

            // set title to empty string here
            title = ""

            // or set a custom back bar button item and set target/action as needed
            navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)

            navigationController?.pushViewController(signInVC, animated: true)
        })
        self.present(alert, animated: true, completion: nil)
        segmentControll.selectedSegmentIndex = 0
        return
    }
    container.swipeToController(at: sender.selectedSegmentIndex)

}
Run Code Online (Sandbox Code Playgroud)