Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应该使用哪种设计模式将数据传递到全局视图_Ios_Design Patterns - Fatal编程技术网

Ios 应该使用哪种设计模式将数据传递到全局视图

Ios 应该使用哪种设计模式将数据传递到全局视图,ios,design-patterns,Ios,Design Patterns,我有一个标签是加在窗口。我在视图类中添加了一个计时器,它通过调用model方法更新数据。现在,如果我移动到另一个视图控制器,我的计时器将完成更新数据的工作 现在我的问题是更新标签文本的正确方法是什么 我可以通过使用委托模式来实现,其中我的自定义标签将是委托人,模型将是委托人。这是正确的方法吗?通常,您会在窗口中添加ViewContoller视图,并在该视图中添加平铺标签。VC的工作是注意计时器已启动,更新模型,注意模型已更改,并更新其视图(及其子视图)以匹配新状态 嗯。同意,但在我的情况下,此标

我有一个标签是加在窗口。我在视图类中添加了一个计时器,它通过调用model方法更新数据。现在,如果我移动到另一个视图控制器,我的计时器将完成更新数据的工作

现在我的问题是更新标签文本的正确方法是什么


我可以通过使用委托模式来实现,其中我的自定义标签将是委托人,模型将是委托人。这是正确的方法吗?

通常,您会在窗口中添加ViewContoller视图,并在该视图中添加平铺标签。VC的工作是注意计时器已启动,更新模型,注意模型已更改,并更新其视图(及其子视图)以匹配新状态

嗯。同意,但在我的情况下,此标签将显示给我的应用程序的所有视图控制器,并在控制器禁用时删除。@user1101733,那么,对我来说,您的应用程序的视图控制器与其视图的一部分共享其行为的一部分。为这些VC提供这些通用数据和行为的简洁方法是通过继承。如果您试图从一个特定VC更改一个特定视图的标签文本,那么委派是最好的方法。但是,如果您想更改所有VCs的文本,那么UNNotificationCenter将是最好的方法。我建议计时器应该是您模型的一部分,并且模型可以使用
通知
让感兴趣的观察者知道属性值的更改