在一个视图上执行操作,并在另一个视图上执行操作?这可能吗?

时间:2011-09-22 16:51:57

标签: iphone ios cocoa-touch

我有2个观点:

  • OneViewController
  • TwoViewController

TwoViewController有一个播放声音的IBAction。一旦用户按下TWoViewController上的按钮,我想要一个UILabel,它将出现在OneViewController上,说声音已经播放。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您所要做的就是在另一个中引用一个viewController,这样您就可以调用它的方法。或者你可以简单地创建一个委托。

答案 1 :(得分:1)

一种可能的解决方案是使用notifications

在播放声音的操作中,将通知发布到默认通知中心,表示声音已播放。

[[NSNotificationCenter defaultCenter] postNotificationName:"playSoundNotification"
                                                    object:self 
                                                  userInfo:nil];

创建OneViewController时,让它注册通知。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(showPlayedLabel:)                                                 
                                             name:"playSoundNotification"
                                           object:nil];

当收到通知时 - 在showPlayedLabel中: - 显示UILabel。请注意,showPlayedLabel必须遵循适当的签名格式。

- (void) showPlayedLabel:(NSNotification*) aNotification;