2015-05-09 57 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 
    } 
}