2010-10-23 20 views
0

我想重新加載一個表格視圖,基於分段控件的值,當點擊一個按鈕時。基於SegmentedControl有條件地重新載入UITableView

所以在我的buttonTapped方法中,我有隨機選擇一個數組項的代碼。在else塊我想從數組中刪除選定的項目,以防止再次選擇相同的項目,目前我從陣列中刪除它...

但我想能夠將應用程序返回到在點擊按鈕之前的狀態,可能是通過製作陣列的-mutableCopy然後從中刪除項目。

我有什麼潛在的選擇,表明一個項目不能再次被選中?變灰了?顏色變化?刪除行?

if (selectionControl.selectedSegmentIndex == 0) { 
     int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count]; 
     NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]); 
    } else { 
     //copyOfArray = [APP_DELEGATE.....]mutableCopy]; // Maybe? 
     int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count]; 
     NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]); 
    } 
    [[[APP_DELEGATE itemsDictionary] objectForKey:category] removeObjectAtIndex:r]; 


    //[copyOfArray removeObjectAtIndex:r]; // Maybe? 
    [self.tableView reloadData]; 
} 

在每個的tableView方法我需要從任一APP_DELEGATE或拷貝返回值之前檢查selectionControl的狀態。

謝謝。

回答

0

我想我要做的就是訪問UITableCellView的「textLabel」成員,並將文本顏色設置爲灰色。

你可以讓他們實現tableView:willSelectRowAtIndexPath:當按下該行時返回NIL - 這將使得它實際上不能被選中。