2012-01-02 36 views
2

我有一個問題,我沒有看到以這種特殊的方式解決之前,所以希望有人可以幫助我。假設我有一個包含四個視圖的標籤欄應用程序,每個標籤上都有一個。很明顯,應用程序將被迫啓動視圖控制器,它被告知要啓動,但在此之後,用戶可以選擇下一個要加載的選項卡(視圖)。iPhone - 檢查是否每個視圖之前已加載

問題來自於我希望在第一次加載特定視圖時在每個選項卡上顯示視圖。通常情況下,你可以這樣做:

BOOL foo = [[NSUserDefaults standardUserDefaults]boolForKey:@"previouslyLaunched"]; 
    if (!foo) 
    { 
     NSLog(@"FirstLaunch"); 
     [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"previouslyLaunched"]; 

     ///Do first run view initializaton here//// 
    } 

但是,這樣做,一旦設置NSUserDefault所有的應用程序,這意味着只對標籤1的視圖將顯示,而不是其他三人。所以,我的問題是,如何僅在第一次加載每個視圖時爲我的四個選項卡顯示視圖?這是一個複雜的問題,因爲用戶可以按任意順序選擇任何選項卡,所以我認爲,我不能引導他們走上一條路。

我必須爲每個視圖使用不同的密鑰嗎?這會起作用嗎?看起來這可能是最好的行動方式,但這是我第一次與NSUserDefaults合作,所以我有點迷路。

任何和所有的幫助,非常感謝!

+4

我只是使用不同的關鍵每個視圖。這樣做沒有問題。 – 2012-01-02 01:30:17

+1

NSUserDefaults基本上是一個plist(又名序列化字典) - 記住這一點,你會很快理解你的選擇。 – Till 2012-01-02 01:57:18

+0

太好了,謝謝你們兩位!我有這樣的想法,但想確保我的理解是正確的 - 我可以告訴你,我對Obj-C來說是比較新的。這工作完美。 – 2012-01-02 02:14:57

回答

1

使用爲每個視圖的不同密鑰:

例如viewController1PreviouslyLaunched,viewController2PreviouslyLaunched ...等

相關問題