代码之家  ›  专栏  ›  技术社区  ›  jamesrom

从其他类更新uilabel

  •  0
  • jamesrom  · 技术社区  · 15 年前

    我对iphone的开发还很陌生,而且我还很了解Objective-C,所以请你放心:)

    我试图从属于主视图控制器的对象内部更改标签的文本。嗯。我觉得这听起来不错。

    对于那些熟悉 AQRecorder 来自的类 SpeakHere example on the iPhone Reference Library :。-

    每次我都要更新标签 AQRecorder::MyInputBufferHandler 调用(即当输入缓冲区已填充时)

    我的第一个方法是修改 AQ记录器 类以包含 UILabel* 作为参数发送给修改后的构造函数。它起作用了,但感觉很不对劲。现在我想修改几个不同的UI组件,我希望有更好的方法。

    我觉得我缺少一些基本的东西。否则我需要一点重构。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Kristopher Johnson    15 年前

    使用探讨 NSNotificationCenter . 它提供了分离的通知,因此记录器类不必知道任何关于UI的信息。

        2
  •  2
  •   Daniel Rinser    15 年前

    除了通知(如Kristopher建议的那样),如果您有可能有多个观察者的“全局”通知,那么非常方便,想到的经典方法是委派。

    在您的例子中,处理事件的类( AQRecorder ?)未能定义委托协议并具有委托属性,而类拥有 UILabel (您的主视图控制器?)可以实现此协议并更新协议实现中的标签(或执行其他需要执行的操作)。