之前一直在項目中看到在以下的方法中,有時候就加了deselectRowAtIndexPath這個方法,有時候就沒加,也沒太在意,今天又被我碰到了,索性查一下到底為什么。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
可能你會遇到過,在導航+tableview,push進去,然后back回來之后,發(fā)現cell還是選中狀態(tài)。當然,解決辦法簡單,添加一句
[tableView deselectRowAtIndexPath:indexPath animated:YES]
即可。
令人糾結的時,在沒加這句的時候,有的視圖同樣回來之后,選中狀態(tài)消失,為什么會出現這種情況呢?
原來是,如果UITableView是在UITableViewController中時,就會默然取消,而如果是在UIViewController時,需要添加這一句,不過有時即使前者也需要添加,那是因為在視圖加載時有其它功能代碼,具體情況各異。所以后者必須加,前者可能需要加。