删除后退栏按钮标题 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"
}
}
我想删除后退栏按钮标题。但是我的代码不起作用。
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"
}
}