2015-06-07 32 views
-1

我有UIView子类被添加到我的视图控制器的主视图。它包含播放音频项目时的音频播放器控件和幻灯片。如何与superview的控制器交谈?

我已经更新视图的用户界面来反映播放状态(经过的持续时间等)就好了。

我想知道的是当按下控件或进度滑块被擦除时,我应该如何与superview的VC交谈。

  • 我应该让superview的控制器成为代表吗?
  • superview的控制者是否应注册为KVO观察者并在视图中公开一些相关属性?
  • 我应该使用通知中心并发布通知吗?

我想这些都是有效的,这不是一个更好的问题,而是哪一个适合我的情况。

回答

0

使用UIControl目标动作,就像使用任意按钮,滑块或其他控件一样。

0

KVO不合适,因为您如何观察按钮按下?通过设置wasPressed?然后取消它?这将导致另一个触发器,你将不得不区分!?它会变得混乱。

我个人不喜欢这种沟通的通知,因为他们只是造成无用的开销。除此之外,我不想将我的代码的功能基于字符串和比较这些字符串。你将不得不在全球某个地方创建它们,或者将它们写入多个空间等。 您将不再有可预测的程序流程。我想去代表团!它是干净的。您可以指定并查看谁调用了什么以及使用什么参数,而不是通知中的某些随机对象。

除此之外:您的问题可能会被关闭,因为它主要是基于意见的。

+0

我特别避免提出基于意见的问题。即使你的回答表明,因为你认为代表团是唯一适当的答案。我感谢你的意见。 – magiclantern