2011-08-08 113 views
1

當我點擊任何單元格文本時,它變成藍色,當我再次回來時,它仍然是藍色,直到我點擊另一個單元格如何解決此問題 我使用UITableView與詳細文本標籤。UITableView單元格顏色不消失

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cell1.png"]]; 
    [cell setBackgroundView:img]; 
    [img release]; 
} 

回答

2

將此代碼添加到您的類:

- (void)viewWillAppear:(BOOL)animated 
{ 
    // this UIViewController is about to re-appear, make sure we remove the current selection in our table view 
    NSIndexPath *tableSelection = [self.tableView indexPathForSelectedRow]; 
    [self.tableView deselectRowAtIndexPath:tableSelection animated:NO]; 
} 
5

取消你的行委託的didSelectRowAtIndexPath:方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    ... 
} 
+0

- (空)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath { \t \t CategoriesList * dvController = [[CategoriesList alloc] initWithNibName:@「CategoriesList」bundle:nil]; \t //將選定的對象傳遞給新的視圖控制器。 \t //dvController.description = description; \t //dvController.title=title; \t //dvController.descriptionImage=descriptionImage; \t [self.navigationController pushViewController:dvController animated:YES]; \t [dvController release]; \t } – ali

+0

我在編輯你的代碼,但它不工作 – ali

+0

@ali「不工作」是一個不好的描述。什麼不工作? – Vladimir

0

當用戶選擇的行

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
    .. your view changing code 
} 
+0

我這樣做,它的工作正常與一個控制器,但在第二個視圖中,當我去那裏,並回覆按鈕移動表視圖它給出異常 – ali

0

你需要做的只是刪除選擇樣式如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

並添加

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

cellForRowAtIndex