Отвечая на мой собственный вопрос: Да, по-прежнему (Xcode 10 / Swift 5) возможно заставить его автоматически добавлять кнопку «назад».
Push
Сегсы устарели со времен iOS 8, поэтому используйте Show (e.g. Push)
вместо!
Обычно Show (e.g. Push)
segue использует Show
, но если где-то слева NavigationController
(сцены идут слева направо) текущего ViewController
, он автоматически использует Push
, который также добавляет кнопку «назад» к панели навигации следующей сцены или, если нет панели навигации, просто добавляет кнопку, где обычно располагается панель.
Мои сцены теперь выглядят так:
- ViewController1: вход в систему без панели навигации (кнопка «login»: перейти к
NavigationController
) - NavigationController: с автоматическим переходом к новому
UITableViewController
(если добавлено через библиотеку) - ViewController2: представление таблицы (связано с 4. с помощью segue)
- ViewController3: дополнительная информация для одного элемента
Добавление данных в переходы между 1. и3. (используя 2.) это ручканемного отличается от того, что было бы без NavigationController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let navC = segue.destination as? UINavigationController
let vc2 = navC?.viewControllers.first as! ViewController2
vc2.myinformation = myinfosArray
}
(Bad) Альтернатива NavigationController:
Добавить NavigationBar
и BarButtonItem
и свяжите его с предыдущим представлением, как с любой другой кнопкой.
Недостаток: представление (в моем случае «ViewController2») сбрасывается, когда вы переключаетесь на следующее (поскольку два представления не отображаются натот же стек, см. объяснение Джали выше), поэтому, если вы вернетесь назад, вам придется все заново настроить.