Objective-C:在两个未连接的视图控制器之间传递数据

问题描述 投票:0回答:2

我有一个带有UILabel的ViewController A和一个带有button的ViewController B,所以我想在按下按钮后更新标签。我可以为此使用委托,但是我的ViewControllers没有连接,并且我不能使用诸如setDelegate之类的东西,我不会在另一个实例中创建任何实例。因此,基本上它们是在其他地方创建的。有什么办法吗?

objective-c delegates
2个回答
0
投票

Variant 1:如果ControllerA和ControllerB的生存时间不同

使用NSUserDefaults。在ControllerB按钮上,单击将数据存储到NSUserDefaults中,在ControllerA中,从NSUserDefaults中读取数据并显示在标签中(也可以观察到NSUserDefaults,因此可以跟踪运行时的更改)

变量2:如果ControllerA和ControllerB当前都在运行时

使用NSNotificationCenter。在ControllerB按钮上,单击发布带有UserInfo中数据的NSNotification,然后通知处理程序中的ControllerA从userInfo中提取数据并分配给标签。


0
投票

使用协调器模式。

将创建/获取两个VC的2个实例的类,并与代表将在他们之间移动数据。协调器模式的优点在于,您的VC可以在其他地方(相同或其他项目)中重复使用,并且代码更简洁。

© www.soinside.com 2019 - 2024. All rights reserved.