2011-12-14 3 views
2

У меня есть приложение, которое может использоваться только в том случае, если пользователь аутентифицирован. В частности, я создал два разных 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 
    } 
} 

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

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

ответ

0

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

Implementing a Container View Controller

Если IOS 5 не доступна я хотел бы видеть подобный подход writing-high-quality-view-controller.

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

1

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

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