[self.table deselectRowAtIndexpath:selected animated:NO];

有沒(méi)有遇到過(guò),導(dǎo)航+UITableView,在push,back回來(lái)之后,當(dāng)前cell仍然是選中的狀態(tài)。

當(dāng)然,解決辦法簡(jiǎn)單,添加一句[tableView deselectRowAtIndexPath:indexPath animated:YES]即可。

令人糾結(jié)的時(shí),在沒(méi)加這句的時(shí)候,有的視圖同樣回來(lái)之后,選中狀態(tài)消失,為什么會(huì)出現(xiàn)這種情況呢?

原來(lái)是,如果UITableView是在UITableViewController中時(shí),就會(huì)默認(rèn)取消,而如果是在UIViewController時(shí),需要添加這一句,不過(guò)有時(shí)即使前者也需要添加,那是因?yàn)樵谝晥D加載時(shí)有其它功能代碼,具體情況各異。所以后者必須加,前者可能需要加。

當(dāng)然如果要求高的話,另外一種更加理想的辦法是:

- (void) viewWillAppear: (BOOL)inAnimated {

NSIndexPath *selected = [self.table indexpathForSelectedRow];

if(selected) [self.table deselectRowAtIndexpath:selected animated:NO];

}

這種方法是在放回的過(guò)程中逐漸取消選中狀態(tài)的,可以提示剛才點(diǎn)進(jìn)去的是哪一行,默認(rèn)的也正是這種效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容