2011-04-06 260 views
2

如何讓我的iPhone應用程序每次在同一個地方啓動,即我的「主屏幕」?我不希望用戶回到他們上次玩的時候 - 在遊戲過程中 - 但這就是發生了什麼。 在此先感謝您的任何提示!iPhone應用程序啓動

回答

6

您需要將您的info.plist文件中的UIApplicationExitsOnSuspend密鑰設置爲YES。然後,應用程序將在主頁按鈕被按下時退出,並在重新打開時重新啓動。

+0

嘿謝謝! - 但我甚至沒有在我的info.plist中看到這個成員 - 它是僅限於iPhone4的字段嗎? – 2011-04-06 11:51:04

+0

它只在iPhone 4上執行任何操作,但您可以安全地將其添加到早期操作系統的info.plist文件中;它將在3.x和2.x上被忽略。 – peterjb 2011-04-06 12:50:52

+0

只需在plist中創建一個新條目,將鍵粘貼到鍵列中,鍵入BOOL類型,然後選中該框 - 它將起作用。它不一定會在Xcode中得到簡單的英文翻譯。 – peterjb 2011-04-06 12:57:34

2
- (void)applicationWillResignActive:(UIApplication *)application { 

[self.navigationController popToRootViewControllerAnimated:YES]; 

} 

/* 當應用程序要由活性移動到不活動狀態時發送。對於某些類型的臨時中斷(例如來電或SMS消息)或用戶退出應用程序並開始轉換到後臺狀態時,可能會發生這種情況。 使用此方法可暫停正在進行的任務,禁用定時器並降低OpenGL ES幀速率。遊戲應該使用這種方法來暫停遊戲。 */

+0

rootviewcontroller是主屏幕.... – 2011-04-06 11:45:06

+0

你怎麼知道他是否使用UINavigationController? – 2011-04-06 11:47:47

+0

/* 當應用程序即將從活動狀態轉移到非活動狀態時發送。對於某些類型的臨時中斷(例如來電或SMS消息)或用戶退出應用程序並開始轉換到後臺狀態時,可能會發生這種情況。 使用此方法可暫停正在進行的任務,禁用定時器並降低OpenGL ES幀速率。遊戲應該使用這種方法來暫停遊戲。 */ – 2011-04-06 11:47:48

3

這大概只發生,因爲你的應用程序並沒有真正停止 - 它只是簡單地背後。 (如果您在查看跳板時雙擊主頁按鈕,它是否顯示在底部?如果是,它仍然在運行。)

您可以禁用此行爲(因此您的應用在用戶點擊主頁按鈕時退出)在您的info.plist文件中設置UIApplicationExitsOnSuspend鍵(在Xcode中稱爲「應用程序不在後臺運行」)。有關更多信息,請參閱Apple的Information Property List Key Reference文檔。

或者,您可以簡單地在應用程序的添加委託中捕獲applicationDidEnterBackground:UIApplicationDelegate方法,並以編程方式處理該情況。 (即:做任何你需要做的事來將你的應用程序重置回「家」屏幕等)

+0

aha是的,它在後臺 - 但我沒有在我的info.plist文件中顯示的UIApplicationExitsOnSuspend字段 - 就好像它認爲它是一個3.2文件? – 2011-04-06 11:59:01

1

設置UIApplicationExitsOnSuspendYES int Info.plist

+0

感謝所有這些迴應! - 好吧,我現在看到它是一個iPhone4領域;但我不想瞄準3.2,所以它在舊手機上運行? – 2011-04-06 11:54:30