2011-01-21 37 views
1

蘋果提供的默認NavigationController模板,它有一個navigationController和一個表。navigationController彈出視圖時取消選定單元格的內容?

如果您選擇一個單元格,則新視圖將被推入navigationController中,並且如果彈出視圖,則所選單元格將自動取消高亮顯示。

但是表怎麼知道什麼時候熄滅它以及它如何知道選擇了哪個單元?

還是隻是重新加載所有數據?

回答

6

如何表知道什麼時候去hightlight它

你可以取消你的右側選擇處理程序:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    [tableView deselectRowAtIndexPath: indexPath]; 
    ... 
} 

或控制器的-viewWillAppear:方法復位選擇

它是如何知道選擇了哪個單元?

的UITableView有以下方法得到選定行indexPath:

- (NSIndexPath *)indexPathForSelectedRow 
+0

謝謝。你是天才! – SeniorLee 2011-01-21 10:57:23

0

對於雨燕3.0

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 
    if self.yourTableView.indexPathForSelectedRow != nil 
    { 
     self.yourTableView.deselectRow(at: self.yourTableView.indexPathForSelectedRow!, animated: true) 
    } 
} 

此代碼將避免崩潰,以及...

另外,添加下面的li ne在您選擇TableViewCell時推送的其他ViewController中。

self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true 

就像一個魅力=]

希望它可以幫助..

相關問題