更改Mainview的背景图像

时间:2011-11-07 23:47:22

标签: iphone objective-c uiimageview uisegmentedcontrol nsnotificationcenter

我对Objective-C相当新,但还未能找到我想要的答案。

我正在构建一个练习应用程序,它会计算特定事件(圣诞节)的天数。这一切都很好,但我想实现一种简单的方法来改变背景图像(从故事板创建)。该应用程序的当前设置是一个基本的实用程序应用程序,其中包含UISegmentedControl的备用视图将设置将在倒计时标签后面显示的背景图像。

我知道我可以推送单独的视图,但这似乎效率很低。我相当肯定我可以使用NSNotifications来更新背景图像,但在阅读文档后如何实现它仍然不清楚。

1 个答案:

答案 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?

就利弊而言,当您想要将更改广播到多个视图时,基本上通知是好的。当两个项目需要直接与某些抽象进行通信时,委派是好的。

NSNotificationCenter vs delegation( using protocols )?