2011-09-22 84 views
0

我正在製作一個包含兩個選項卡的應用程序,其中一個選項卡是「最喜歡的」選項卡。在另一個名爲「搜索」的選項卡中,我有一個顯示在表格視圖中的結果列表,當您點擊一個結果列表時,您會看到該結果的詳細信息。我在這裏要做的是,在詳細視圖中有一個按鈕,當它被按下時,當前結果被髮送到「最喜歡」選項卡。我試圖使用委託來傳遞信息,但它沒有解決。這裏是我的代碼:如何創建收藏夾列表iphone

DetailViewController.m

-(IBAction) addSomething { 
    [self.delegate detailViewController:self addToFavourite:self.something]; 
} 

FavouriteViewController.m,實現委託方法:

- (void) detailViewController:(DetailViewController *)detailViewController addToFavourite:(Something *)something{ 
    detailViewController.delegate = self; 
    [thingsList addObject:something]; 
    [theTableView reloadData]; 
} 

一切是建立和罰款,但在當我點擊 「添加」 按鈕詳細信息視圖中,數據不會發送到「最喜歡」選項卡的視圖。任何人都可以幫我解決這個問題嗎?在這種情況下,我是否需要使用核心數據,之前我從未使用過核心數據。謝謝。

+0

此數據是否會持續超出應用程序生命週期?或者每次使用應用程序時都會重新加載? –

+0

最喜愛的清單應該是持久的,所以我想知道我是否應該使用核心數據... – Michael

+0

由你決定。對於像數組一樣小的用戶,默認情況下效果很好。處理CoreData的開銷要小得多。祝你好運。 –

回答

1

一種簡單易行的方法是將您的信息存儲在NSUserDefaults中。

NSUserDefaults *defaults = [NSUserDefaults standardDefaults]; 
[defaults setObject:thingsList forKey:@"myData"]; 
[defaults synchronize]; 

當您在其他選項卡中加載數據時,只需從用戶默認值中填充即可。

NSUserDefaults *defaults = [NSUserDefaults standardDefaults]; 
otherData = [defaults objectForKey:@"myData"]; 

我可能濫用用戶的默認值超過我應該,但它是個非常簡單的方法來在本地存儲數據並讓它運行之間依然存在。它也將用iTunes備份以增加持久性。希望這可以幫助。

+0

嗨,有一個問題,我在哪裏啓動「thingList」? – Michael

+0

thinkList可以是任何你想要的。 NSArray,NSDictionary,NSString,無論你需要它。只需將它初始化,然後將其作爲對象添加到NSUserDefaults。 –

+0

但每次我初始化它,並設置對象爲同一個鍵,原始數據將被覆蓋,對吧?每次加載詳細視圖時,我如何堅持東西列表? – Michael