2011-12-14 1 views
2

사용자가 인증 된 경우에만 사용할 수있는 애플리케이션이 있습니다. 특히 두 개의 다른 UIViewController를 만들었습니다. 첫 번째는 LoginViewController이고 두 번째는 HomeViewController입니다. applicationDidFinishLaunching: 방법에서는 LoginViewController 생성 된 다음과 같은 속성에 추가 rootViewController :로그인/로그 아웃 전환을 관리하기위한 제안

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

Whitin LoginViewController 내가 로그인을 수행하는 방법을 만들었다. 사용자가 인증되면 performLogin이라는 메서드를 수행합니다. swicthView 방법은 출원 대리인 클래스 내에 구현 된

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

.

- (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 
    } 
} 

이전 코드를 감안할 때, 그것은 로그인/로그 아웃 전환 또는 이러한 유형의 구현이 가치있는 솔루션으로 간주 될 수 않습니다를 관리하는 더 우아한 메커니즘을 구현하는 것이 가능하다?

미리 감사드립니다.

답변

1

다른 옵션으로, HomeViewController를 rootViewController로 설정합니다. ViewDidLoad 또는 viewDidAppear 메서드 (HomeViewController에 대한 정보를 표시하기 전에)에 사용자가 로그인 자격 증명이 있는지 확인합니다. 그렇지 않은 경우 loginViewController를 모달 형식으로 표시하여 사용자 로그인 자격 증명을 요청합니다. 이 경우, 나는 윈도우의 rootViewController를 변경할 필요가 없다.