2011-08-04 5 views
0

다른 스레드에서 여기 처음으로 내 앱이 시작될 때마다 표시되는 모달보기 "로그인 화면"이 표시됩니다. 지금 내가 원하는 것은 사용자가 다시 로그인 할 수 있도록 앱이 포 그라운드로 돌아올 때마다 (즉, 백그라운드에서 실행 중이고 다시 표시 될 때마다) 로그인 화면을 표시하는 것입니다.앱이 활성화 될 때 아이폰 용 로그인 화면 표시

내 코드는 다음과 같습니다. applicationDidFinishLaunchingWithOptions 스위치 (lockScreenOnOff가)의 경우 모달 로그인보기 도시

LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil]; 


    if (lockScreenOnOff) 
    { 
     [self.tabBarController presentModalViewController:loginViewController animated:YES]; 
     [self.window makeKeyAndVisible]; 
    } 

. 이것을 어떻게 할 수 있습니까?

답변

1

응용 프로그램 대리인에 applicationDidEnterBackground:applicationDidBecomeActive:을 구현하십시오. (UIApplicationDelegate class reference)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Create all view controllers 

    [self lockApplicationAnimated:NO]; // Lock on launching 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

- (void)lockApplicationAnimated:(BOOL)animated 
{ 
    [self.tabBarController presentModalViewController:self.loginViewController 
              animated:animated]; 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    // Lock the application 
    // Also, save all user data because the application might terminate soon 
    [self lockApplicationAnimated:NO]; 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    // Hooray, the user returned! 
    // Screen should be locked because the applicationDidEnterBackground 
} 

은 또한 당신은 또한 일정 시간 후 세션을 무효화 NSTimer를 사용할 수 있습니다.

+0

나는이 두 장소에 원래 게시 한 동일한 코드를 추가하여이 작업을 시도했습니다. 자물쇠 화면이 다시 나타납니다 (내가 원했던 것처럼). 그러나 홈 버튼을 누르고 다시 들어가면 모달 화면이 사라집니다 (잠금 화면을 무효화). – Peter

+0

'[self.window makeKeyAndVisible]'을'applicationDidFinishLaunchingWithOptions'에서 한 번만 호출하면됩니다. 'applicationDidEnterBackground'가있을 때만 modalViewController를 표시하도록하십시오. – David

+0

당신은 천재입니다, 거짓말이 아닙니다. 진심으로 도움을 주셔서 감사 드리며 잠시 동안 해결 해드립니다. – Peter

관련 문제