Представление экрана входа Modal View Controller - PullRequest
1 голос
/ 16 октября 2011

В моем приложении требуется аутентификация, поэтому, когда вы запускаете одну из вкладок на панели вкладок, «класс А» проверяет, сохранены ли учетные данные, если нет, запускается контроллер модального представления «класс В» с полями для входа в систему.

Итак, мой вопрос: в каком методе в классе A (loadView, viewWillAppear или, возможно, в другом) должен быть реализован контроль, сохранены ли учетные данные и другие вещи, описанные выше.

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

Спасибо за ответ, ребята.

О! Еще один тонкий

И еще одна вещь. Я выполнил реализацию LoginView, добавив делегат и представив ModalVC (метод Харкониана Пикванта). Но в моем приложении панели вкладок у меня очень запутанная проблема. Я имею в виду, когда пользователь нажимает кнопку входа (предположим, что все было правильно, и он может защитить данные), как правильно переключиться на вкладку, где находится защищенная информация. Я имею в виду ранее выбранную вкладку.

я сделал это, добавив

- (IBAction) логин {

// некоторый код

self.tabBarController.selectedIndex = 1;

И, кажется, работает хорошо, но правильно ли?

1 Ответ

1 голос
/ 16 октября 2011

У меня есть очень аналогичный вариант использования в моем приложении - для аутентификации требуется пароль. После многих испытаний и доработок я обнаружил, что наилучшим подходом является следующий дизайн:

Не используйте класс A для запуска ваших учетных данных VC - используйте вместо этого делегат приложения.

В целях безопасности, как правило, вы хотите, чтобы VC учетных данных отображался до того, как пользователь сможет просмотреть базовое представление. Гораздо проще справиться с этим в делегате приложения, чем в VC. Кроме того, вам необходимо учитывать, что происходит, когда ваше приложение имеет фоновый режим - снимок экрана с текущим состоянием приложения. Если вы используете viewController A для отображения представления учетных данных, когда приложение перезапустится, пользователь сможет увидеть любую конфиденциальную информацию, которая была видна в приложении, близко, пока приложение не завершит запуск, и VC A представит VC учетных данных.

Не вставляйте ваше представление учетных данных в существующий ViewController - используйте вместо него новый UIWindow.

Вы никогда не хотите, чтобы какое-либо другое представление могло располагаться поверх вашего представления учетных данных. Когда-либо. Даже представления, которые обычно всегда будут сверху, как UIAlertView. Самый простой способ добиться этого - использовать специальный UIWindow только для просмотра учетных данных. Показать это окно и скрыть главное окно приложения всякий раз, когда вам нужно отобразить представление учетных данных.

Как этот подход выглядит на практике?

Если вас вообще интересует, как хорошо работает этот дизайн, вы можете проверить функцию пароля в Audiotorium Notes для iPad. Я провел много времени с этим дизайном, чтобы убедиться, что он был максимально безопасным.

Если у вас есть какие-то конкретные квесты по реализации, не стесняйтесь спрашивать, и я постараюсь на них ответить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...