我開始迅速,我正在做一個應用程序(一個小遊戲)。 級別2,...的按鈕未啓用,因爲用戶在用戶安裝應用程序時尚未贏得1級。那麼我希望每當用戶贏得關卡時都啓用這些按鈕。我在一個文件中寫道的:在swift代碼中啓用按鈕
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
是ENA流血,但是當我添加
var lvlWon2: Bool = false {
didSet {
blvl3?.enabled = lvlWon2
}
}
當我贏得level1
,將blvl2
和blvl3
被啓用,我不知道爲什麼
我想這是因爲我保存所有blvl
但我的數據我不確定。 預先感謝,真的很抱歉我的英語,這不是我的第一語言。
檢查故事板,是否所有按鈕在初始化期間都被禁用。 – MShah
他們都被禁用.. –