如何创建收藏夹列表iphone

问题描述:

我正在制作一个包含两个选项卡的应用程序,其中一个选项卡是“最喜欢的”选项卡。在另一个名为“搜索”的选项卡中,我有一个显示在表格视图中的结果列表,当您点击一个结果列表时,您会看到该结果的详细信息。我在这里要做的是,在详细视图中有一个按钮,当它被按下时,当前结果被发送到“最喜欢”选项卡。我试图使用委托来传递信息,但它没有解决。这里是我的代码:如何创建收藏夹列表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的开销要小得多。祝你好运。 –

一种简单易行的方法是将您的信息存储在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