我是iPhone开发的新手,我仍然围绕着Objective-C,所以请耐心等待我:)

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

对于那些熟悉 AQRecorder 类的人“> iPhone参考资料库中的SpeakHere示例: -

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

我的第一个方法是修改 AQRecorder 类,以包含我作为参数发送给修改后的构造函数的 UILabel * 。它奏效了,但感觉非常错误。现在我想修改几个不同的UI组件,我希望有更好的方法。

我有一种感觉,我错过了一些基本的东西。那或者我将需要一些重构。

有帮助吗?

解决方案

使用 <代码> NSNotificationCenter 。它提供了分离的通知,因此记录器类不必了解UI的任何信息。

其他提示

除了通知(如Kristopher所建议的),如果你有“全局”的话,这非常方便。可能有多个观察者的通知,想到的经典方法是委托。

在您的情况下,处理事件的类( AQRecorder ?)可以定义委托协议并具有委托属性,而拥有 UILabel 的类(您的主视图控制器?)可以实现这个协议并更新协议实现中的标签(或做任何其他需要做的事情)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top