我开始迅速,我正在制作一个应用程序(一个小游戏)。级别 2,... 的按钮未启用,因为用户在安装应用程序时尚未赢得级别 1。然后我希望每次用户赢得关卡时都启用这些按钮。我在一个文件中写了这个:
class levelList: UIViewController {
@IBOutlet var blvl1: UIButton!
@IBOutlet var blvl2: UIButton!
@IBOutlet var blvl3: UIButton!
var lvlWon1: Bool = false {
didSet {
blvl2?.enabled = lvlWon1
}
}
var lvlWon2: Bool = false {
didSet {
blvl3?.enabled = lvlWon2
}
}
let lvl1Default = NSUserDefaults.standardUserDefaults()
let lvl2Default = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
if (lvl1Default.objectForKey("lvlWon1") != nil){
lvl1Default.setBool(true, forKey: "lvlWon1")
lvlWon1 = lvl1Default.valueForKey("lvlWon1") as! Bool!
}
else{
lvl1Default.setBool(false, forKey: "lvlWon1")
lvlWon1 = lvl1Default.valueForKey("lvlWon1") as! Bool!
}
//
if (lvl2Default.objectForKey("lvlWon2") != nil){
lvl2Default.setBool(true, forKey: "lvlWon2")
lvlWon2 = lvl2Default.valueForKey("lvlWon2") as! Bool!
}
else{
lvl2Default.setBool(false, forKey: "lvlWon2")
lvlWon2 = lvl2Default.valueForKey("lvlWon2") as! Bool!
}
}
}
这在另一个文件中:
等级 lvl1: UIViewController {
var levelList = levelList()
@IBOutlet var bNext: UIButton!
@IBAction func nextlvl(sender: UIButton) {
levelList.lvlWon1 = true
levelList.lvlWon1 = levelList.lvl1Default.valueForKey("lvlWon1") as! Bool!
let lvl1Default = NSUserDefaults.standardUserDefaults()
lvl1Default.setValue(listeNiveaux.lvlWon1, forKey:"lvlWon1")
lvl1Default.synchronize()
}
//我的问题是当我写的时候一切都很好:
var lvlWon1: Bool = false {
didSet {
blvl2?.enabled = lvlWon1
}
}
所以当我赢得比赛时lvl 1
,level2 button
启用了,但是当我添加
var lvlWon2: Bool = false {
didSet {
blvl3?.enabled = lvlWon2
}
}
当我赢得level1
,blvl2
和blvl3
启用时,我不知道为什么
我认为这是因为我保存了所有人的数据,blvl
但我不确定。在此先感谢,真的很抱歉我的英语,这不是我的第一语言。