2011-08-04 107 views
0

從其他線程在這裏我已經獲得了一個模式視圖「登錄屏幕」,以顯示我的應用程序第一次啓動時。我現在想要的是,只要應用程序返回到前臺(即它在後臺運行並重新啓動)就會顯示登錄屏幕,以便用戶可以重新登錄。當應用程序變爲活動狀態時顯示iPhone的登錄屏幕

這是我的代碼applicationDidFinishLaunchingWithOptions

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


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

其中示出的模態登錄視圖如果一個開關(lockScreenOnOff)是上。我怎樣才能做到這一點?

回答

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

您只需在'applicationDidFinishLaunchingWithOptions'中調用'[self.window makeKeyAndVisible]'一次。 嘗試僅在'applicationDidEnterBackground'時顯示modalViewController。 – David

+0

你是一個天才,沒有謊言。真的非常感謝你的幫助,一直試圖讓它解決一段時間! – Peter

相關問題