Отмена вида, исчезающего с помощью 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
}
Другие вопросы по тегам