从另一个ViewController检索数据

时间:2017-11-20 12:34:51

标签: ios swift

我知道这是一个经常被问到的问题,可能是Stackoverflow整体上最受争议的问题。但是我现在一直在寻找答案,大约一周没有运气。

这就是我想要做的事情..

我有两个ViewControllers让我们称之为mainVC和settingsVC。

在我的settingsVC中,我有一个功能,用户可以将他们的小时工资放在一个文本字段中,然后使用UserDefaults进行保存。这是我想在mainVC中访问的数据。

然而,它们之间没有任何连接(它们没有被任何segue绑定,我不希望它们是这样),我不希望在保存数据时实例化mainVC。

此外,我不想使用全局变量。那么最好的方法是什么?

总而言之,我只想在mainVC中从settingsVC中检索数据,而不使用全局变量和segues。

3 个答案:

答案 0 :(得分:0)

您应该使用实例变量,协议或通知在viewContoller之间传递数据。

答案 1 :(得分:-2)

为什么不从用户默认值中检索数据?这就是存储数据的地方,并且普遍可用。

答案 2 :(得分:-2)

您正在NSUserDefaults中保存数据。所以你没有机会担心保存和检索数据。

为了节省价值

NSString *valueIWantToSet = @"valueToSave"
[[NSUserDefaults standardUserDefaults] valueIWantToSet forKey:@"saveKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

获取此值

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"saveKey"];

如果未在NSUserDefaults中保存值,则必须使用Notification