删除后退栏按钮标题 Swift

Remove back bar button title Swift

我想删除后退栏按钮标题。但是我的代码不起作用。

class SearchFoodsTableViewController: UITableViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {

    var searchController: UISearchController!

    override func viewDidLoad() {
        super.viewDidLoad()

        searchController = UISearchController(searchResultsController:  nil)

        searchController.searchResultsUpdater = self
        searchController.delegate = self
        searchController.searchBar.delegate = self

        searchController.hidesNavigationBarDuringPresentation = false
        searchController.dimsBackgroundDuringPresentation = true

        navigationItem.titleView = searchController.searchBar
        //it is not working
        navigationItem.backBarButtonItem = nil//UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

        definesPresentationContext = true
    }

结果看起来像 this。 如何正确去除标题?我知道主控制器中的这个技巧:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    navigationItem.title = "Категории"
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(true)

    navigationItem.title = ""
}

它工作正常,但是当我返回主控制器时,标题“Категории”显示得非常慢,这个解决方案不适合我。

您必须为 上一个 视图控制器设置 backBarButtonItem

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

class SecondVC: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.title = "SecondVC"
    }
}