首页 文章

从另一个ViewController检索数据[重复]

提问于
浏览
0

这个问题在这里已有答案:

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

这是我想要做的..

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

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

但是它们彼此之间没有任何连接(它们没有被任何segue绑定,我不希望它们是这样)并且我不希望在保存数据时实例化mainVC .

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

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

4 回答

  • 0

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

  • -2

    在您的设置ViewController:

    UserDefaults.standard.set(value: Double, forKey: "salary")
    

    在你的主ViewController中,每当你去那里 . 在你的viewDidLoad中

    UserDefaults.standard.double(forKey: "salary")
    

    UserDefaults不是每个视图控制器,而是整个应用程序 . 所以这将是最好的事情 .

  • -1

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

  • -2

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

    为了节省 Value

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

    获得这个 Value

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

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

相关问题