我想添加一个像这样工作的自动收藏夹功能:
我有一个带有单元格名称和未选中星号的详细 View 。用户点击未选中的星号,选中星号并将特定单元格名称添加到另一个 View 。在任何时候,用户都可以转到详细 View 并再次点击星号,星号将变为未选中状态,并且单元格名称将从另一个 View 中删除。
我想用一个自定义按钮作为星号,用一个表格 View 作为另一个 View 。
最好使用 IBAction 或 IBOutlet。
detailView 中按钮的代码
-(IBAction)toggleFavUIButton *)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];
}
}
Best Answer-推荐答案 strong>
代表团是你的 friend :
- 为该详细 View 编写一个 Controller ,用于保存星星。
- 此 Controller 有一个
id 委托(delegate) 类型的委托(delegate)成员。
- 在协议(protocol)声明中,您可以使用
informOfCheckTriggeredOnStar: 和 informOfUnCheckTriggeredOnStar: 等方法
- 您在收藏夹 View 的 Controller 中实现此委托(delegate)方法,并将此 Controller 设置为每个详细 View 的委托(delegate)。
Delegation & Protocols
编辑
Quick'n'Dirty — 我写了一个小 sample code为你。它非常粗糙而且不好看,但它展示了它是如何工作的。
关于objective-c - 将收藏夹功能添加到 iPhone App iphone sdk,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/4081154/
|