有沒有遇到過,導(dǎo)航+UITableView髓迎,在push峦朗,back回來(lái)之后,當(dāng)前cell仍然是選中的狀態(tài)排龄。
當(dāng)然波势,解決辦法簡(jiǎn)單,添加一句[tableView deselectRowAtIndexPath:indexPath animated:YES]即可涣雕。
令人糾結(jié)的時(shí)艰亮,在沒加這句的時(shí)候,有的視圖同樣回來(lái)之后挣郭,選中狀態(tài)消失,為什么會(huì)出現(xiàn)這種情況呢疗韵?
原來(lái)是兑障,如果UITableView是在UITableViewController中時(shí),就會(huì)默認(rèn)取消蕉汪,而如果是在UIViewController時(shí)流译,需要添加這一句,不過有時(shí)即使前者也需要添加者疤,那是因?yàn)樵谝晥D加載時(shí)有其它功能代碼福澡,具體情況各異。所以后者必須加驹马,前者可能需要加革砸。
當(dāng)然如果要求高的話,另外一種更加理想的辦法是:
- (void) viewWillAppear: (BOOL)inAnimated {
NSIndexPath *selected = [self.table indexpathForSelectedRow];
if(selected) [self.table deselectRowAtIndexpath:selected animated:NO];
}
這種方法是在放回的過程中逐漸取消選中狀態(tài)的糯累,可以提示剛才點(diǎn)進(jìn)去的是哪一行算利,默認(rèn)的也正是這種效果。