Swift 4
iOS 11.2
Xcode 9.2
TableViewController1 ---segue---> TableViewController2
Вы можете изменить текст кнопки «Назад» в TableViewController1 или TableViewController2.
Изменить текст кнопки возврата внутри TableViewController1 :
1) В viewWillAppear()
:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let myBackButton = UIBarButtonItem()
myBackButton.title = "Custom text"
navigationItem.backBarButtonItem = myBackButton
}
По какой-то причине viewDidLoad () слишком рано, чтобы добавить кнопку возврата в NavigationItem. Чтобы соединить два TableViewController, перетащите элемент управления раскадровкой из TableViewCell в TableViewController1 в середину TableViewController2 и во всплывающем меню выберите Selection Segue > Show
.
2) В tableView(_:didSelectRowAt:)
:
override func tableView(_ tableView: UITableView, didSelectRowAt: IndexPath) {
let myButton = UIBarButtonItem()
myButton.title = "Custom text"
navigationItem.backBarButtonItem = myButton
performSegue(withIdentifier: "ShowMyCustomBackButton", sender: nil)
}
Для соединения двух контроллеров TableViewController перетащите курсор из маленького желтого кружка над TableViewController1 в середину TableViewController2 и в раскрывающемся меню выберите Manual Segue > Show
. Затем выберите последовательность, соединяющую два TableViewControllers, и в инспекторе атрибутов рядом с «Identifier» введите «ShowMyCustomBackButton».
3) В storyboard
:
Если вам просто нужен статический пользовательский текст для кнопки «Назад», выберите NavigationItem для TableViewController1 (он имеет <
для значка в оглавлении раскадровки), затем откройте инспектор атрибутов и в «Кнопке назад» введите свой пользовательский текст (не забудьте выделить его из поля, чтобы изменения вступили в силу).
Изменить текст кнопки возврата внутри TableViewController2 :
1) В viewWillAppear()
:
class MySecondTableViewController: UITableViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let myBackButton = UIBarButtonItem(
title: "<Custom text",
style: .plain,
target: self,
action: #selector(goBack) //selector() needs to be paired with an @objc label on the method
)
navigationItem.leftBarButtonItem = myBackButton
}
@objc func goBack() {
navigationController?.popViewController(animated: true)
}
Чтобы соединить два TableViewController, перетащите элемент управления раскадровки из TableViewCell в TableViewController1 в середину TableViewController2 и во всплывающем меню выберите Selection Segue > Show
.