之前一直在项目中看到在以下的方法中,有时候就加了deselectRowAtIndexPath这个方法,有时候就没加,也没太在意,今天又被我碰到了,索性查一下到底为什么。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
可能你会遇到过,在导航+tableview,push进去,然后back回来之后,发现cell还是选中状态。当然,解决办法简单,添加一句
[tableView deselectRowAtIndexPath:indexPath animated:YES]
即可。
令人纠结的时,在没加这句的时候,有的视图同样回来之后,选中状态消失,为什么会出现这种情况呢?
原来是,如果UITableView是在UITableViewController中时,就会默然取消,而如果是在UIViewController时,需要添加这一句,不过有时即使前者也需要添加,那是因为在视图加载时有其它功能代码,具体情况各异。所以后者必须加,前者可能需要加。
网友评论