2012-07-20 86 views
0

我有一个tableview充满自定义单元格。在每个单元格中都有两个按钮,如果我按下第一个按钮,则会导航到另一个视图,我们可以将其称为secondview。从另一个视图更新UITableViewCell

在我的第二个视图中,有一个按钮与前一个tableview中的单元格上的第二个按钮具有相同的功能。当我按下第二个视图上的按钮时,我将其隐藏起来,但我也想隐藏单元格上的第二个按钮。

但注意!我只想隐藏在第一个按钮上的第二个按钮,而不是全部!

我该怎么做? 在此先感谢!

回答

2

您应该将第一个视图作为代表传递给第二个视图,并且在第二个视图中进行更改时,您将调用第一个视图的hideSecondButton或任何其他方法。无论如何,你问题的关键字是delegate

+0

谢谢,你能提供至少一个伪示例吗? – oybcs 2012-07-20 07:49:02

+0

一些很好的例子是[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

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代码来理解监听器的实现。

0

@Cernal,'object:fooModel'是指'fooModel.xcdatamodeld'还是我错过了什么?