2011-02-08 18 views
21

Hiện tại tôi làm một số công việc bên trong đại diện didSelectRowAtIndexPath và nhận thấy rằng hàng của tôi vẫn "được chọn" sau khi tôi quay lại trình điều khiển chế độ xem sau.Làm thế nào để bỏ chọn một UITableViewCell sau khi bạn đã thực hiện một số hành động bằng cách sử dụng didSelectRowAtIndexPath?

Làm cách nào để bỏ chọn hàng này bên trong ủy nhiệm?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    //do logic and ... it remains selected in the view? 
} 

Trả lời

50
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
37

Thông thường, bạn muốn bỏ chọn hàng khi điều khiển xem xuất hiện một lần nữa:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES]; 
} 

Đó là những gì UITableViewController làm ngầm, và hiệu ứng động quá trình deselection sau khi điều khiển xem xuất hiện một lần nữa là một gợi ý hữu ích cho người dùng về ô mà họ đã chọn trước đó.

+0

Tôi nghĩ tốt hơn nên sử dụng 'viewWillAppear:' thay vào đó để người dùng không nhìn thấy hàng một cách nhanh chóng – doctorBroctor

Các vấn đề liên quan