我对Objective-C相当新,但还未能找到我想要的答案。
我正在构建一个练习应用程序,它会计算特定事件(圣诞节)的天数。这一切都很好,但我想实现一种简单的方法来改变背景图像(从故事板创建)。该应用程序的当前设置是一个基本的实用程序应用程序,其中包含UISegmentedControl的备用视图将设置将在倒计时标签后面显示的背景图像。
我知道我可以推送单独的视图,但这似乎效率很低。我相当肯定我可以使用NSNotifications来更新背景图像,但在阅读文档后如何实现它仍然不清楚。
答案 0 :(得分:0)
一种方法是使用代理。代表是一个回调。这避免了一个视图将引用传递给另一个视图并让它戳(引入耦合)。相反,一个通过正式协议提供回调并委托给另一个。
这是一个涵盖它的SO问题:
What exactly does delegate do in xcode ios project?
另一种选择是拥有共享模型。使用单例模式,多个视图可以共享模型(数据和操作),您可以使用NSNotificationCenter发送通知。当另一个视图获得背景更改的通知时,它可以查询模型并更新背景。
相关帖子:
Giving notification to another class with NSNotificationCenter
How to share an object with the entire project?
就利弊而言,当您想要将更改广播到多个视图时,基本上通知是好的。当两个项目需要直接与某些抽象进行通信时,委派是好的。