Отмена вида, исчезающего с помощью ViewWillDisappear
Мое приложение использует NavigationController. При нажатии кнопки "Назад" я хотел бы проверить, что определенное условие выполнено. Если это не так, я хочу предупредить пользователя, что проделанная им работа не будет сохранена.
Я пытаюсь использовать viewWillDisappear
функция для выполнения логики и т. д.
Однако я не уверен, как остановить навигацию, если пользователь хочет отменить ее.
1 ответ
Решение
Предоставьте элемент левой панели кнопок в вашем контроллере представления viewDidLoad(..)
метод. Какую бы логику вы не поместили в метод Selector leftBarButton, ваша левая кнопка будет работать так.
например:
override func viewDidLoad(){
let backButton = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(self.backButtonAction(_:)))
self.navigationItem.leftBarButtonItem = backButton
}
@objc func backButtonAction(_ sender: UIBarButtonItem){
// Your logic for navigation
}