2013-10-09 58 views
0

在我的應用程序的某個時候,用戶會看到大量的UISwitch。當這個視圖離開時,我想檢查每個開關的位置,如果它打開,將一個簡單的字符串保存到該開關的核心數據中,讓我知道它已打開。問題是,我不想手動進行了一堆的if語句如下所示:檢查多個UISwitches的狀態

if(switch1 is on){ 
    save attribute in core data switch1checked as @"YES i am checked" 
} 

這將是檢查有不同的出口名稱不同UISwitches最好的做法?我在想下面這樣的東西:

for (UIView *view in [self.scrollView subviews]) { 
    if ([view isKindOfClass:[UISwitch class]]) { 
     UISwitch *switchView = (UISwitch *)view; 
     if(switchView.isOn == YES){ 
      [self saveToCoreData]; 
     } 

    } 
} 

問題是沒有保存到核心數據,問題是如何知道它是哪個開關。有任何想法嗎?我相信這很簡單,但我想不出一個解決方案。

回答

2

爲每個交換機添加一個tag。不要等待視圖關閉,將targetaction添加到每個開關並處理值更改。當數值改變時,使用tag來確定哪個開關發生了變化並立即保存該數據。

tag可能是一個索引開關標識符數組...

+0

你能編程設置的標籤?例如與上面相同的代碼,但使用計數器循環,如:for(each switch){double i = 0; switchView.tag = i; i ++;} –

+0

是的,你可以編程設置標籤。 – Wain