У меня есть UINavigationController с корневым контроллером представления, а затем я помещаю UIViewController в стек контроллера навигации. Когда пользователь нажимает backBarButtonItem, я хотел бы иметь возможность отображать всплывающее окно с предупреждением, если выполняются определенные условия, и отменять всплывающее окно контроллера представления. Например, пользователь может сделать определенные выборы, но некоторые их комбинации могут быть недействительными, поэтому я хочу уведомить их о внесении изменений.
Я знаю, что могу помешать пользователю сделать недопустимую комбинацию или открыть всплывающее окно с предупреждением, когда выбрана недопустимая комбинация, но я бы не стал этого делать. Пользователь может изменять выбор и может знать, что определенная комбинация недопустима, но я бы предпочел, чтобы он выбрал что-то, что делает комбинацию недействительной, а затем изменил что-то другое (и уведомил их, если они не внесли изменения, прежде чем пытаться перейти на предыдущий экран). Например, если я не позволю им выбрать то, что создает недопустимую комбинацию, им, возможно, придется прокрутить экран вверх, что-то изменить, затем прокрутить вниз, вместо того, чтобы делать выбор, затем прокрутить вверх и изменить что-то.
Использование viewWillDisappear:
не работает, потому что, хотя я могу создать представление с предупреждением, я не могу найти способ предотвратить появление всплывающих окон. Представление предупреждений отображается, но контроллер представления все еще всплывает, и они возвращаются к корневому контроллеру представления (с отображением представления предупреждений).
Есть ли способ предотвратить появление поп-музыки? Если нет, то стоит ли сообщать об ошибке или это излишне и / или эзотерично?