2015-05-09 118 views
1

我有一個表視圖,具有多個行,具體取決於用戶創建的條目數。 讓我們假設用戶創建了2個條目,因此我們有2行。UISwitch一次更改兩個值

現在挖掘將各行創建了2行2個UISwitches 另一個表的子視圖(就像一棵樹。2行,每行擴展到2個新行,每行有UISwitch)

所有UISwitch狀態時更新了字典詞典。 例如下面

[0:[0:否,1:真],1:[0:否,1:假]]

行0 - >第一開關:OFF,第二:ON

行1 - >第一開關:OFF,第二:OFF

場景:

所有UISwitches是ON因此,[0:[0:真,1:真],1:[0:真,1 :true]]

第0行的第一個UISwitch off-> [0 :[0:假,1:真],1:[0:真,1:真]]

第一行的第二個UISwitch斷開 - > [0:[0:false,1:true] :[0:false,1:false]]

它將每個關閉按照預期方式關閉,但也包括所有其他(粗體),其中在步驟一中爲不同的UI開關行關閉OFF。它似乎記得前面的步驟,但弄亂了行。

代碼:

//smallDictionary is a dictionary 
//bigDictionary is a dictionary of dictionaries 
// smallDictionary is appended to bigDictionary 
// row is a variable updated everytime some row is tapped. 

@IBAction func switchChanged(sender: UISwitch) { 
    if sender.on == true { 
     smallDictionary[sender.tag]! = true 
     bigDictionary[row]! = globalswitchSaveDict 

    } 
    else { 
     smallDictionary[sender.tag]! = false 
     bigDictionary[row]! = globalswitchSaveDict 
    } 
} 

回答

0

固定的問題。

不得不添加的代碼來更新正確smallDict艾琳如圖所示:

@IBAction func switchChanged(sender: UISwitch) { 
    smallDictionary = bigDictionary[row]! 
    if sender.on == true { 
     smallDictionary[sender.tag]! = true 
     bigDictionary[row]! = globalswitchSaveDict 

    } 
    else { 
     smallDictionary[sender.tag]! = false 
     bigDictionary[row]! = globalswitchSaveDict 
    } 
}