IOS: как я могу предотвратить сброс UIViewController?
У меня есть мастер внутри некоторых UIViewController в UINavigationController и UITabBar; шаг мастера должен выполняться последовательно, и если пользователь пытается нажать кнопку "Назад" или выбирает другие элементы вкладки, я должен перехватить событие и показать сообщение типа "Вы действительно хотите остановить мастер (да / нет)?", Какое событие я должен запечатлеть для показа моего предупреждения?
1 ответ
Мне кажется, что это проблема UX, которую можно решить, применив немного иной подход к структуре вашего пользовательского интерфейса.
Этот мастер звучит как модальный процесс, так как вы хотите, чтобы пользователь либо завершил задачу, выполнив указанные шаги, либо отменил ее. В этом случае вы должны представить UINavigationController
модально. Это будет означать, что пользователь не может взаимодействовать с панелью вкладок во время работы вашего мастера, поэтому решает одну из ваших проблем.
Что касается кнопки "Назад", если вы не хотите, чтобы пользователь мог вернуться назад, я бы скрыл кнопку "Назад" от UINavigationItem
из всех UIViewController
ы, которые представлены в UINavigationController
и предоставьте кнопку отмены влево или вправо UIBarButtonItem
, Если возвращение является проблемой только с первого шага, вам не нужно скрывать кнопки возврата вообще.