IOS: как я могу предотвратить сброс UIViewController?

У меня есть мастер внутри некоторых UIViewController в UINavigationController и UITabBar; шаг мастера должен выполняться последовательно, и если пользователь пытается нажать кнопку "Назад" или выбирает другие элементы вкладки, я должен перехватить событие и показать сообщение типа "Вы действительно хотите остановить мастер (да / нет)?", Какое событие я должен запечатлеть для показа моего предупреждения?

1 ответ

Мне кажется, что это проблема UX, которую можно решить, применив немного иной подход к структуре вашего пользовательского интерфейса.

Этот мастер звучит как модальный процесс, так как вы хотите, чтобы пользователь либо завершил задачу, выполнив указанные шаги, либо отменил ее. В этом случае вы должны представить UINavigationController модально. Это будет означать, что пользователь не может взаимодействовать с панелью вкладок во время работы вашего мастера, поэтому решает одну из ваших проблем.

Что касается кнопки "Назад", если вы не хотите, чтобы пользователь мог вернуться назад, я бы скрыл кнопку "Назад" от UINavigationItem из всех UIViewController ы, которые представлены в UINavigationController и предоставьте кнопку отмены влево или вправо UIBarButtonItem, Если возвращение является проблемой только с первого шага, вам не нужно скрывать кнопки возврата вообще.

Другие вопросы по тегам