2011-08-04 29 views
0

他のスレッドから私のアプリが初めて起動するたびに表示するモーダルビュー「ログイン画面」が表示されています。私が今したいのは、アプリがフォアグラウンド(つまり、バックグラウンドで実行され、再び起動される)に戻るときにログイン画面が表示されるようにすることです。アプリがアクティブになったときにiPhone用のログイン画面を表示

私のコードは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

関連する問題