如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?

Posted

技术标签:

【中文标题】如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?【英文标题】:How to check the state of an UISwitch from another ViewController in SWIFT 3? 【发布时间】:2016-08-07 06:51:40 【问题描述】:

我想从另一个View Controller 检查UISwitch 的状态。如果switchon,那么我希望ViewbackgroundColor 是红色的,否则它应该是绿色的。我尝试使用UserDefaults,但我不知道从什么开始。任何帮助将不胜感激!

【问题讨论】:

视图控制器会同时处于活动状态吗? 【参考方案1】:

注意:这是 SWIFT 3 的版本:

首先,我将switchinitial state 设置为关闭。我添加了一个按钮,它将我们带到 secondViewController 并检查开关的状态。这是我的代码(用于包含开关的视图控制器):

    @IBOutlet weak var switch1: UISwitch!
        let defaults = UserDefaults.standard
        var switchON : Bool = false
@IBAction func checkState(_ sender: AnyObject) 
   
        if switch1.isOn
            switchON = true
        defaults.set(switchON, forKey: "switchON")
        
        if switch1.isOn == false
            switchON = false
            defaults.set(switchON, forKey: "switchON")
        
    
    

对于secondView

let defaults = UserDefaults.standard
    
    override func viewDidLoad() 
        super.viewDidLoad()
        if defaults.value(forKey: "switchON") != nil
            let switchON: Bool = defaults.value(forKey: "switchON")  as! Bool
            if switchON == true
                self.view.backgroundColor = UIColor.red()
            
            else if switchON == false
                self.view.backgroundColor = UIColor.green()
            
        
    
    

【讨论】:

谢谢,这正是我要找的!

以上是关于如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?的主要内容,如果未能解决你的问题,请参考以下文章

从 Swift 3 中的另一个项目访问视图控制器

如何从 Swift SpriteKit 中的另一个 SKScene 访问变量

如何将数据从 Playground 页面传递到 Swift Playgrounds 中的另一个 Playground 页面?

从Swift中的另一个类刷新UITableView

从Swift中的另一个ViewController访问rightBarButton函数

swift:将 y 轴朝向 3-d 空间中的另一个点