在ViewController中重新显示时保留值的正确方法

时间:2017-06-24 12:56:29

标签: ios swift uiviewcontroller access-control

我有两个ViewControllers:MainVCSettingsVCMainVC的行为取决于SettingsVC中运行时设置的值。当从SettingsVC转换为MainVC时,我会通过prepareForSegue()移交该值。没问题!

但是当再次加载SettingsVC以再次设置值时,将记住最后一个值的最佳方式是什么?

是否可能是创建全局变量的方法MainVCSettingsVC都可以访问?

2 个答案:

答案 0 :(得分:1)

是的,您可以在类之外使用import UIKit var param = 1 class MainVC: UIViewController { ... } 来使该变量成为全局变量。如果您的SettingVC

中有此代码,请说明
MainVC

然后这个变量param在你的settingVC中可见。

但是,更好的做法是将变量传递给segue。当您转到prepareForSegue()时,只需将设置值从alwaysRunning移回{{1}}。如果你想在segue回来时传递价值,你正在寻找一个放松的segue。 missing features是一个教程。

答案 1 :(得分:1)

您可以将UserDefaults用于此目的。

  

用于存储的用户默认数据库的接口   在给定的应用程序的调用中持久保存键值对   设备

当你设置时,设置值:

// someVariable is the value you want to set
// someKey is the key to identify the value for the userDefault
UserDefaults.standard.set(someVariable, forKey: "someKey")

每当您想要获取值(从应用程序中的任何位置)时,请使用以下内容:

let value = UserDefaults.standard.value(forKey: "someKey")