2011-10-17 54 views
0

我有一個tableView與多個開關(每行一個開關)。 什麼是保存交換機狀態的最佳方式? 和我應該保存和檢索數據的方法?TableView與多個開關

回答

1

將數據保存到數組中,您尚未給出任何上下文,但是您可能正在使用某種數組來驅動表中的行數和其餘內容?

您可以在cellForRowAtIndexPath:方法中設置開關的值。我假設如下:

  • 你已經有一個指針開關的cellForRowAtIndexPath方法中
  • 您已經創建可變數組與NSNumber對象

所以,當它充滿你有你的手機,並即將返回它:

cellSwitch.on = [[switchValueArray objectAtIndex:indexPath.row] boolValue]; 

你的setter方法有點複雜,因爲你所有的s女巫將會調用同樣的行動方法。因此,你需要找出開關是哪一行,這將是您連接到方法值已更改

-(IBAction)switchValueChanged:(UISwitch*)sender 
{ 
    NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell*)[sender superview]]; 
    [switchValueArray replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:sender.on]]; 
} 
0

我認爲最簡單的方法之一是使用rowid作爲鍵和值爲bool的字典。

0

如果你希望它是通過應用持續開關啓動你可以保存NSNumbers(numberWithBool :)的NSDictionary,或者如果表視圖始終顯示相同的選擇,則將它們保存在NSUserDefaults(setBool:forKey :)中。