2012-05-28 183 views
2

我希望我的應用程序在每次完全加載內存時都加載到相同視圖中,因此當應用程序關閉然後再次打開時,它會打開相同的視圖(當前它是UITabBar中的一個選項卡)。 我想查看代碼,而不僅僅是描述如何執行此操作,因爲我在iOS開發方面經驗不足。 在此先感謝!每次從相同視圖加載應用程序

回答

3

如果你的標籤是主菜單,例如,你總是希望被加載運行應用程序時,再考慮不是由您的應用程序的 Info.plist文件中添加下列鍵使多任務處理:

Application does not run in background - (tick the box) 
or: 
UIApplicationExitsOnSuspend - set to YES (BOOL) 

這將確保您的應用在按Home鍵並調用 UIApplicationDelegate方法 applicationwillterminate:時退出。

編輯:

好吧,我想你需要保持你的特定選項卡和/或該用戶是在標籤上,每當這個變化的軌跡。將此值保存在NSUserDefaults(plist)中,並在每次應用程序啓動或激活時檢查它 - 然後如果它不在正確的位置,可以切換到該選項卡。

這是你正在嘗試做什麼?

編輯2:

第一步,無論你聽出你的標籤欄上的按鈕按下,你需要獲取新選定的索引的整數值,就像在接受的答案在這裏:

Switching to a TabBar tab view programmatically?

然後,您需要將此值(存儲/保存)寫入.plist文件。首先,將一個新的屬性列表文件添加到您的項目中,然後在Xcode中打開它並添加一個新行,將其稱爲簡單的SelectedTab,其類型爲數字並且值爲1337.

在您的應用程序委託中,你需要告訴你的應用程序,你有你需要與應用程序註冊一個新的.plist,所以在application:didFinishLaunchingWithOptions:,你需要做到以下幾點:

NSUserDefaults* userPreferences = [NSUserDefaults standardUserDefaults]; 
[userPreferences registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"myNewFile" ofType: @"plist"]]]; 

這裏是你如何讀取和寫入到您的SelectedTab plist整數:

要獲得儲值...

int test = [[NSUserDefaults standardUserDefaults] integerForKey: @"SelectedTab"]; 

要編寫一個新的價值,你的鑰匙......

int newTab = 2; 
[[NSUserDefaults standardUserDefaults] setInteger: newTab forKey: @"SelectedTab"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; // absolutely critical! 

你只需要選擇正確的位置在您的應用程序委託執行該檢查,然後告訴你的標籤欄加載你想要的標籤。

希望這會有所幫助!

+0

不幸的是,事實並非如此。我希望我的應用支持多任​​務處理,並且我也希望它能加載特定的視圖,以某種方式彈出它。此選項卡不是主視圖,而不是初始視圖控制器。 –

+0

編輯我的帖子。 – Luke

+0

是的,沒錯!但是我不明白應該在哪裏編寫代碼來加載特定的視圖,以及代碼的外觀如何。 –

相關問題