有沒有遇到過,導航+UITableView盘寡,在push楚殿,back回來之后,當前cell仍然是選中的狀態(tài)竿痰。
當然坐桩,解決辦法簡單,添加一句[tableView deselectRowAtIndexPath:indexPath animated:YES]即可潦刃。
令人糾結的時喘落,在沒加這句的時候,有的視圖同樣回來之后蟹倾,選中狀態(tài)消失匣缘,為什么會出現(xiàn)這種情況呢?
原來是鲜棠,如果UITableView是在UITableViewController中時肌厨,就會默認取消,而如果是在UIViewController時豁陆,需要添加這一句柑爸,不過有時即使前者也需要添加,那是因為在視圖加載時有其它功能代碼盒音,具體情況各異表鳍。所以后者必須加,前者可能需要加祥诽。
當然如果要求高的話譬圣,另外一種更加理想的辦法是:
- (void) viewWillAppear: (BOOL)inAnimated {
NSIndexPath *selected = [self.table indexpathForSelectedRow];
if(selected) [self.table deselectRowAtIndexpath:selected animated:NO];
}
這種方法是在放回的過程中逐漸取消選中狀態(tài)的,可以提示剛才點進去的是哪一行原押,默認的也正是這種效果胁镐。