将收藏夹功能添加到iPhone App iphone sdk

时间:2010-11-02 18:55:55

标签: objective-c ios cocoa-touch uitableview uibutton

我想添加一个自动收藏夹功能,其功能如下:

我有一个带有单元名称和未经检查的星形的详细视图。用户点击未选中的星号,选中星号,并将特定的单元格名称添加到另一个视图中。用户可以随时转到详细视图并再次点击星标,并且星形变为未选中状态,并从其他视图中删除单元格名称。

我想用自定义按钮作为星形,将tableview作为另一个视图。 优选使用IBAction或IBOutlet。

我的详细信息视图中的我的代码

-(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];
}

}

1 个答案:

答案 0 :(得分:4)

代表团是你的朋友:

  • 为该详细视图编写一个控制器,用于保存星形。
  • 此控制器具有id<AProtocolDefindeByYou> delegate类型的委托成员。
  • 在协议声明中,您可以使用informOfCheckTriggeredOnStar:informOfUnCheckTriggeredOnStar:
  • 等方法
  • 您可以在收藏夹视图的控制器中实现此delegegate方法,并在每个详细信息视图中将此控制器设置为委托。

Delegation&amp; Protocols

修改
Quick'n'Dirty - 我为你写了一个小sample code。它非常粗糙,看起来不漂亮,但它展示了它是如何工作的。