有沒有遇到過,導航+UITableView,在push,back回來以後,當前cell仍然是選中的狀態。
固然,解決辦法簡單,添加一句[tableView deselectRowAtIndexPath:indexPath animated:YES]便可。
使人糾結的時,在沒加這句的時候,有的視圖一樣回來以後,選中狀態消失,爲何會出現這種狀況呢?
原來是,若是UITableView是在UITableViewController中時,就會默然取消,而若是是在UIViewController時,須要添加這一句,不過有時即便前者也須要添加,那是由於在視圖加載時有其它功能代碼,具體狀況各異。因此後者必須加,前者可能須要加。
固然若是要求高的話,另一種更加理想的辦法是:
- (void) viewWillAppear: (BOOL)inAnimated {
NSIndexPath *selected = [self.table indexpathForSelectedRow];
if(selected) [self.table deselectRowAtIndexpath:selected animated:NO];
}
這種方法是在放回的過程當中逐漸取消選中狀態的,能夠提示剛纔點進去的是哪一行,默認的也正是這種效果。spa