1

Я реализует собственную схему URL в моей навигации приложение на основе, чтобы позволить пользователям импортировать данные из электронной почты, и поэтому у меня есть этот метод в моем приложении делегат:Отклонить или уничтожить все контроллеры, листы действий и т. Д.?

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 

Было бы хорошо, если после импорта данные в этом методе, я мог бы использовать popToRootViewController, чтобы вернуться в rootViewController, чтобы показать пользователю новые данные.

Однако это не сработает, если пользователь импортировал данные во время просмотра модального контроллера или листа действий (popToRootViewController не отменяет их и заставляет приложение замораживать).

Есть ли способ, которым я могу безопасно уволить/уничтожить все контроллеры представлений/листы действий/предупреждения, за исключением rootViewController?

Или, может быть, какой-то способ сказать из моего делегата приложения, если у пользователя есть панель действий или контроллер модального представления вверх?

Или я просто оставлю их там, где они остановились, и не дает немедленного указания на то, что данные были успешно добавлены?

ответ

1

Вам придется следить за ними самостоятельно. Легкий способ сделать это - опубликовать уведомление со ссылкой на модальный просмотр/лист/предупреждение в словаре userinfo каждый раз, когда вы показываете что-то модальное. Всякий раз, когда модальный вид возвращается, отправляйте другое уведомление.

Наблюдайте за уведомлениями в своем делете приложения (или везде, где это имеет смысл, но делегат приложения прост). Когда вы получаете первый, храните (слабую) ссылку на модальный вид и нулевую ссылку, когда вы получаете вторую. В промежутке вы сможете ответить на -application:handleOpenURL:, отклонив модальное представление, если ваша ссылка не равна нулю.

Обратите также внимание на то, что в случае предупреждений, вероятно, лучше всего уволить их при вводе фона. Недели могут пройти до того, как вы снова окажетесь на переднем плане, и это плохой стиль, чтобы приветствовать пользователя: «Вы уверены? OK/Отмена», когда они больше не могут понять, о чем вы спрашиваете.

+0

Спасибо ... Я еще не знаком с уведомлениями, но проверю его. На данный момент я решил показать UIAlertView, чтобы пользователь знал, что новые данные были добавлены, а не заставляют пользователя вернуться к контроллеру корневого представления. (что, теперь, когда я его пробовал, возможно, лучше с точки зрения пользователей) –

 Смежные вопросы

  • Нет связанных вопросов^_^