如何与superview的控制器交谈?

时间:2015-06-07 20:06:08

标签: ios objective-c cocoa-touch

我有MAIN个子类被添加到我的View Controller的主视图中。它包含音频播放器控件,并在播放音频项目时滑入。

我已经更新了视图的UI以反映播放状态(经过的持续时间等)。

我想知道当按下控件或者擦除进度滑块时我应该如何与superview的VC对话。

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

KVO不适合,因为你会怎么看按钮?设置wasPressed?然后解开它?这将引起另一个触发器,你必须区分的那些!?它会变得凌乱。

我个人不喜欢这种通信的通知,因为它们只会导致无用的开销。除此之外,我不喜欢将我的代码功能基于字符串和比较这些字符串。你必须在全球某处创建它们,或者将它们写在多个空间中等等 - 不。 您将不再拥有可预测的程序流程。

我会选择代表团!它是干净的。您可以指定并查看谁调用了什么以及使用什么参数而不是通知中的一些随机对象。

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