将代理更改为查看的任何屏幕

时间:2012-12-18 14:58:43

标签: ios uiviewcontroller delegates notifications

我在其他帖子中读过,在iOS中拥有多个代表并不是正确的做事方式(也许甚至不可能?),而是应该使用NSNotifications之类的东西提醒其他(多个)视图事件控制者。

更好的做法是在应用程序的整个运行时间内保持对象的委托相同,或者在任何给定时间将委托更改为模态的VC是有用的。

这是一个例子: 我有一些模拟器类在后台运行并生成将由应用程序中的几个不同视图控制器使用的随机数。由于一次只能查看一个VC,我可以将活动VC作为模拟器的委托,并在每次UI更改时切换委托。

...或者我可以像我现在一样使用通知,并在加载时使用VC注册通知。

由于

1 个答案:

答案 0 :(得分:0)

有意义的是,委托是一个代表其他对象做一些工作的对象。您似乎拥有的是各种对象是数据提供者的客户端的情况。你所描述的背景任务负责完成视图控制器正在帮助的事情是没有意义的。

为了使实现符合结构,我建议将背景对象指定为视图控制器的“数据提供者”属性,或者保留通知...取决于您喜欢的耦合程度以及您使用哪个类已启动数据传输。