2011-11-30 70 views
2

當我關閉我的應用程序(通過HOME按鈕)並再次打開它時,如何強制應用程序從最初的視圖重新啓動,而不是從最後顯示的位置(之前它被關閉了)?這是項目中的一個設置嗎?從頭開始重新啓動iphone應用程序

回答

8

設置應用程序的info.plist鍵:UIApplicationExitsOnSuspend爲True。

+0

我喜歡你的答案,但我認爲提問者希望應用程序保持多任務處理,但只是從根視圖控制器開始.... – Sid

+0

hotpaw2是正確的。這就是我一直在尋找的東西。但是,我選擇了「應用程序不在後臺運行」並將其設置爲YES。 – sexitrainer

1

這是由多任務引起的,即應用程序沒有正常退出。

爲了確保其持久性有機污染物回來,試試這個在applicationWillEnterForeground,像這樣:

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    [self.navigationController popToRootViewControllerAnimated:NO]; 
} 

還是一個非常快速和骯髒的方式,是真正退出應用程序,當它進入背景(注意,這可能是不是最好的方法)。

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [[NSThread mainThread] exit]; 
    // OR 
    exit(0); 
} 
+3

「退出(0)」的問題是蘋果會拒絕。 – Louie

+0

好吧,試試我的另一個解決方案或者'[[NSThread mainThread] exit];' –

1

查找從手機讓你知道手機「開始活躍起來」的,如果應用程序正在運行纔會發生,然後發送到後臺的通知,然後再次拉昇。 一旦你知道它已經變得活躍,你可以推動你的主頁視圖。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 
    if (application.applicationState == UIApplicationStateInactive) { 
     //application has been sent to the background 
    } 

    if(application.applicationState == UIApplicationStateActive) { 
     //The application has become active an alert view or do something appropriate. 
     //push home view here. 
    } 
} 
+0

您也可以像Alex指出的那樣使用應用程序委託方法,但不要嘗試退出。你應該改變用戶提供的信息。應用程序委託和通知同樣適用。 – TigerCoding

相關問題