2013-07-31 62 views
0

我有一個開關的自定義UITableViewCell子類。在子類中的valueChanged操作中,我根據開關狀態設置單元的選擇的屬性。自定義UITableViewCell的手動選擇不會使tableView.indexPathsForSelectedRows返回單元格?

self.selected = self.optionSwitch.isOn 

在處理這些細胞中的UITableViewController請問選定行的表視圖,但它返回零(不選擇行)。

self.tableView.indexPathsForSelectedRows 

爲什麼它返回nil如果選中單元格?我確定他們是因爲我找回了一個來檢查選定的屬性,實際上它是

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 
BOOL isSelected = cell.isSelected; 

PS1:我已經把我的表視圖的allowsMultipleSelection財產。

PS2:我知道tableView:selectRowAtIndexPath:工作,但我不想爲我的自定義單元格創建委託只是爲了通知表視圖並使tableview選擇該行。

回答

0

我放棄了,並在PS2中使用瞭解決方案。爲您的自定義單元格創建一個委託並調用selectRowMethod。

#pragma mark - CellDelegate 

- (void)didSelectCell:(CustomCell *)cell 
{ 
    NSIndexPath *ip = [self.tableView indexPathForCell:cell]; 
    [self.tableView selectRowAtIndexPath:ip animated:NO scrollPosition:UITableViewScrollPositionNone]; 
} 

- (void)didDeselectOptionCell:(CustomCell *)cell 
{ 
    NSIndexPath *ip = [self.tableView indexPathForCell:cell]; 
    [self.tableView deselectRowAtIndexPath:ip animated:NO]; 
} 
0

萬一有人有同樣的問題,這是我的解決辦法:

NSIndexPath *index ; 
for(int i=0; i<self.slices.contains.count; i++){ 
    index = [NSIndexPath indexPathForRow:i inSection:0]; 
    [self.tableView selectRowAtIndexPath:index animated:NO scrollPosition:UITableViewScrollPositionNone]; 
} 

這將在迭代你的tableview的所有單元格,選擇他們(實際上它們添加到

tableview indexPathsForSelectedRows 
相關問題