我使用包含字典数组的plist通过MutableArray填充MainTableViewController。选择单元格后,会将重新呈现的字典传递给DetailViewController,其中显示了重新显示的字典中字符串的值。我在故事板中为DetailView添加了一个按钮,我希望这个按钮将重新设计的字典发送到“收藏夹”选项卡,该选项卡名为FavoritesTableViewController。我正在考虑如何做到这一点,但我是编程的新手,所以我不得不寻求建议。
我想出了两种可行的方法。我可能离正确的答案很远,但至少我在想。
1:该按钮在一个重新设计的字典中将一个布尔值更改为yes,并且在FavoritesViewController中的原型单元被告知显示带有boolean = yes的字典。
2:该按钮将字典复制到带有收藏夹的新plist,显示在收藏夹表格视图中。
但我真的不知道......
编辑:
到目前为止,在DetailViewController中的代码:
-(IBAction)FavoriteButton:(id)sender
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"ItemSelected"
object:selectedObject];
}
到目前为止,代码显示了在FavoritesViewController中的葡萄酒:
[[NSNotificationCenter defaultCenter] addObserverForName:@"ItemSelected"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification* notif) {
[favoritedObjects release];
favoritedObjects = [[notif object] retain];
[self.tableView reloadData];
}];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [favoritedObjects count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Favcell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
NSString *cellValue = [favoritedObjects valueForKey:@"Name"];
cell.textlabel.text = cellValue;
return cell;
}
这显示了20个单元格,其值来自Key:来自DetailViewController中最后一个Object的“Name”,我按下了“添加到收藏夹”按钮。例如,如果我将“Gato Negro”添加到收藏夹,它会在20个单元格中显示“Gato Negro”。如果我然后将“Luna”添加到fav,它会在FavoritesViewController的20个单元格中显示“Luna”。
答案 0 :(得分:0)
如何发布通知并将所选字典作为object
或userInfo
传递?
[[NSNotificationCenter defaultCenter] postNotificationName:@"ItemSelected"
object:mySelectedDictionary];
在FavoritesViewController
中,您只需订阅此通知(例如,在init
方法中),就像这样:
[[NSNotificationCenter defaultCenter] addObserverForName:@"ItemSelected"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification* notif) {
[dictionaryToShow release];
dictionaryToShow = [[notif object] retain];
[self.tableView reloadData];
}];