在视图控制器之间传递数据而不更改视图

时间:2017-07-16 15:41:09

标签: ios swift

正如标题所述,我希望简单地传递信息。

我目前有一个标签式视图应用程序,用户将数据输入到文本字段,按下按钮,然后在同一个视图控制器上用输入的文本填充标签。

我想将该信息发送到其他标签并填写标签。

我知道我可以通过协议或segues执行此操作,但是,我想保留在当前选项卡上。我没有在任何地方看到这个例子,只是将视图切换到另一个屏幕。

任何人都知道如何简单地传递输入的字符串而不更改视图?

1 个答案:

答案 0 :(得分:4)

你看这一切都错了。您不希望或不需要在视图控制器之间传递数据。如果您的应用程序正确使用MVC(模型,视图,控制器),那么您应该做的是更新模型。该模型应广播已更新。任何关心模型的人都应该根据需要对这些通知做出反应。

您有一个带有多个视图控制器的标签控制器。两个或多个视图控制器对同一数据模型感兴趣。两者都应引用相同的数据实例,并设置为通知有关该数据模型实例的更改。

一个视图控制器通过其视图更新数据模型。然后,数据模型发出已更新的通知。现在,感兴趣的视图控制器会收到此通知,并根据更新的数据模型更新自己的视图。

无需视图转换。不需要segue。不需要不同视图控制器之间的通信。

查看NotificationCenter的文档,了解广播消息的方法以及侦听此类消息的方法。