Swift 3 - 将布尔值发送到不同的类

时间:2017-08-08 05:14:50

标签: ios swift class

我正在尝试创建一个应用程序,在欢迎屏幕上,您可以恢复游戏或开始新游戏,两者都将在同一个类中处理。但是,我不确定如何发送用户按下简历或新游戏的天气信息,因为它需要在不同的课程中。同样重要的是我可以更改两个类中的值。我找到的解决方案是使用override func prepare(for segue: UIStoryboardSegue, sender: Any?)但是,它在if语句中,所以我不能使用override,我认为这是导致它不起作用的原因。有谁知道更好的解决方案?谢谢!

2 个答案:

答案 0 :(得分:1)

在UserDefaults中添加它并使用其中的值。

添加/更新

UserDefaults.standard.set(true, forKey: "Key") //Bool

获取/获取

UserDefaults.standard.bool(forKey: "Key")

答案 1 :(得分:0)

使用此

import Foundation

class Game: NSObject, NSCoding {

    static var sharedInstance = Game(status: false)

    var status = false

    init(status: Bool) {
        super.init()
        self.status = status
    }

    required convenience init(coder aDecoder: NSCoder) {
        var status: Bool = false
        if (aDecoder.decodeObject(forKey: "status") as? Bool) != nil {
            status = aDecoder.decodeObject(forKey: "status") as! Bool
        }

        self.init(status: status)
    }

    func encode(with aCoder: NSCoder) {
        aCoder.encode(status, forKey: "status")
    }
}

你可以像这样使用它:

var option = Game.sharedInstance.status