(Swift) 如何使用 UISwitch 改变 var

(Swift) How to use UISwitch to change var

我有一个正在构建的 VPN 应用程序,我也有自己的 DNS 服务器。

要指定我要使用的 DNS,我在 let dns = "1.1.1.1,8.8.8.8"

下的文件 VPNUK1.swift 中执行此操作

我制作了一个使用 SettingsView.swift

的设置页面

我制作了一个 ViewController 并添加了一个 UISwitch,然后我使用 @IBOutlet 到 link 它到 SettingsView.swift

但是我不知道如何让 UISwitch 将 VPNUK1.swift 中的 let dns = "1.1.1.1,8.8.8.8"SettingsView.swift 更改为

我想,当切换开关时,是否将其更改为let dns = "185.136.234.36"

一个IBOutlet是一个名词。它指向视图控制器中的 view/control。

一个IBAction是一个动词。它允许您指定在用户与控件交互时应为 运行 的代码。

您需要按住控制键从情节提要中拖动到包含开关的视图控制器的源中,并为开关创建一个 IBAction,以便在值更改事件上调用。

在您的 IBAction 中检查发件人的状态 属性。

然后您需要一种方法将更改传达给您的其他视图控制器。为了帮助解决这个问题,您将不得不解释视图控制器如何相互关联以及用户如何从一个到另一个。他们是否同时出现在屏幕上?一个视图控制器是否以模态方式呈现另一个?

在设置视图控制器中使用 if / else ui 开关来设置 UserDefaults.standard.set("1.1.1.1", forKey: "DNS")

在 vpn 视图控制器中:"dns": UserDefaults.standard.string(forKey: "DNS")!