我有一个tableview充满自定义单元格。在每个单元格中都有两个按钮,如果我按下第一个按钮,则会导航到另一个视图,我们可以将其称为secondview。从另一个视图更新UITableViewCell
在我的第二个视图中,有一个按钮与前一个tableview中的单元格上的第二个按钮具有相同的功能。当我按下第二个视图上的按钮时,我将其隐藏起来,但我也想隐藏单元格上的第二个按钮。
但注意!我只想隐藏在第一个按钮上的第二个按钮,而不是全部!
我该怎么做? 在此先感谢!
我有一个tableview充满自定义单元格。在每个单元格中都有两个按钮,如果我按下第一个按钮,则会导航到另一个视图,我们可以将其称为secondview。从另一个视图更新UITableViewCell
在我的第二个视图中,有一个按钮与前一个tableview中的单元格上的第二个按钮具有相同的功能。当我按下第二个视图上的按钮时,我将其隐藏起来,但我也想隐藏单元格上的第二个按钮。
但注意!我只想隐藏在第一个按钮上的第二个按钮,而不是全部!
我该怎么做? 在此先感谢!
您应该将第一个视图作为代表传递给第二个视图,并且在第二个视图中进行更改时,您将调用第一个视图的hideSecondButton
或任何其他方法。无论如何,你问题的关键字是delegate
。
最简单的实现方法是使用通知。在模型更改时发布通知时,在您的数据模型上。
[[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代码来理解监听器的实现。
@Cernal,'object:fooModel'是指'fooModel.xcdatamodeld'还是我错过了什么?
谢谢,你能提供至少一个伪示例吗? – oybcs 2012-07-20 07:49:02
一些很好的例子是[here](http://timneill.net/2010/11/modal-view-controller-example-part-2/)和[here](http://stackoverflow.com/questions/626898 /怎么办,我创建-代表,在目标-C) – Templar 2012-07-20 08:27:39