2010-11-02 60 views
2

我要添加一个自动的收藏夹功能,是这样的:加入收藏夹功能,以iPhone应用程序iPhone的SDK

我有一个小区的名字和一个未经检查的明星的详细视图。用户点击未选中的星号,选中星号并将特定单元名称添加到另一个视图。在任何时候,用户都可以进入详细视图并再次点击星形,星形变为未选中状态,单元名称将从另一个视图中删除。

我想用一个自定义按钮作为星号和一个tableview作为另一个视图。 最好使用IBAction或IBOutlet。

我在我的DetailView

-(IBAction)toggleFav:(UIButton *)sender { 
if([sender isSelected]){ 

    //... 
    [sender setSelected:NO]; 
    NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"valueSaver"] mutableCopy]; 
    [array removeObject:[NSString stringWithString:self.selectedSushi]]; 
    [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"valueSaver"]; 
    [array release]; 

} else { 

    //...  
    [sender setSelected:YES]; 
    NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"valueSaver"] mutableCopy]; 
    [array addObject:[NSString stringWithString:self.selectedSushi]]; 
    [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"valueSaver"]; 
    [array release]; 
} 

}我的按钮代码

+0

你可以为UIButton设置一个自定义图像。 U会想要选择和未选择2个不同的图像。 iboutlet是没有问题的 – vikingosegundo 2010-11-05 17:33:26

回答

4

代表团是你的朋友:

  • 写为详细视图,持有星的控制器。
  • 此控制器有一个id<AProtocolDefindeByYou> delegate类型的代表成员。
  • 在协议声明,你可以像informOfCheckTriggeredOnStar:informOfUnCheckTriggeredOnStar:
  • 方法您实现这个delegegate法在控制器的您的收藏夹查看和设置这个控制器上的每个细节视图代表。

Delegation & Protocols

编辑
Quick'n'Dirty - 我写了一个小sample code你。这是非常粗糙,不漂亮,但它展示了它的工作原理。

+1

请参阅我的编辑 – vikingosegundo 2010-11-02 21:27:48

+0

当我运行vscheck收藏夹的示例代码它失败3错误和4警告showFavoritesTableViewController未找到,并访问未知组件tableView。 – Souljacker 2010-11-03 13:56:58

+0

再试一次。我忘了添加一些文件 – vikingosegundo 2010-11-03 14:04:22