Предложения по управлению переходами входа / выхода - PullRequest
2 голосов
/ 15 декабря 2011

У меня есть приложение, которое можно использовать, только если пользователь аутентифицирован.В частности, я создал два разных UIViewController.Первый называется LoginViewController, а второй называется HomeViewController.В методе applicationDidFinishLaunching: LoginViewController создается, а затем добавляется к свойству rootViewController следующим образом:

LoginViewController* loginCtr = ... // alloc and initiWithNibName... 
self.window.rootViewController = loginCTr;
[loginCtr release];

Whitin LoginViewController Я создал метод, который выполняет вход в систему.Когда пользователь прошел аутентификацию, я выполняю метод, который называется performLogin.

- (void)performLogin
{
  MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
  [appDelegate switchView];    
}

, где в классе делегата приложения реализован метод swicthView.

- (void)switchView
{
   if(VIEW_TYPE == kLogin) // Display Login
   {
     // create a new LoginViewController and assign it to rootViewController
   }

   else // Display Home
   {
     // create a new HomeViewController and assign it to rootViewController
   }
}

ДаноВ предыдущем коде можно ли реализовать более элегантный механизм управления переходом между входом и выходом из системы или этот тип реализации можно считать полезным решением?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Другой вариант, я установлю HomeViewController в качестве rootViewController. В методе viewDidLoad или viewDidAppear (перед тем, как отобразить любую информацию на HomeViewController), я проверю, есть ли у пользователя учетные данные для входа. Если нет, я буду отображать loginViewController как модальное устройство для запроса учетных данных пользователя. В этом случае мне не нужно изменять rootViewController окна.

0 голосов
/ 01 июля 2012

Начиная с iOS 5, я начал управлять переходами при входе / выходе из системы, используя новый API сдерживания для UIViewController s.

Реализация контроллера представления контейнера

Если iOS 5 недоступна, я бы увидел похожий подход запись высококачественного контроллера вида .

Надеюсь, это поможет.

...