我有一个填充自定义单元格的tableview。在每个单元格中有两个按钮,如果我按下第一个按钮,我导航到另一个视图,我们称之为第二个视图。
在我的第二个视图中,有一个按钮与上一个tableview中我单元格上的第二个按钮具有相同的功能。当我按下第二个视图上的按钮时我隐藏它,但我也想隐藏我单元格上的第二个按钮。
但要注意!我只想隐藏这个按下第一个按钮的特定单元格上的第二个按钮,而不是所有按钮!
我该怎么做? 提前谢谢!
答案 0 :(得分:2)
您应该将第一个视图作为委托传递给第二个视图,当在第二个视图中进行更改时,您将调用第一个视图的hideSecondButton
或您所做的任何方式。无论如何,您问题的关键字是delegate
。
答案 1 :(得分:1)
实现此目的的最简单方法是使用通知。在模型更改时,在数据模型上发布通知。
[[NSNotificationCenter defaultCenter] postNotificationName:@"fooModelChanged" object:self];
在您要监听模型的fooModelChanged
通知的视图和视图控制器上添加此项并实现侦听器方法。
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fooModelHasChanged:) name:@"fooModelChanged" object:fooModel];
}
- (void)fooModelHasChanged:(NSNotification*)notification {
// Add buttons, remove buttons or simply...
[self.tableView reloadData];
}
使用代理可以通过更好的方法解决问题。但需要更长的时间来解释和实施。我建议你阅读更多的objective-c代码来理解监听器的实现。
答案 2 :(得分:0)
@Cernal,是'对象:fotoModel'指的是'food Model.xcdatamodeld'还是我错过了什么?