2017-06-29 18 views
0

例如天然iOS應用郵件和注看到這個單元格被選中並被取消選擇動畫iOS商店選擇UITableViewCell?如果選擇的小區</p> <p>1) - 如果在步驟1之後單擊後退按鈕應用推視圖控制器</p> <p>2) - 該應用持久性有機污染物視圖控制器和你:

如何實現相同的行爲?目前我需要將其添加到我的應用中的每個表格。

+0

你試過麼? –

+0

我唯一的想法是手動存儲所選擇的指數和自定義單元格根據這個指數顯示。但是,將這種行爲手動添加到每個屏幕/單元格將是一個地獄 –

回答

1

我承擔。您正在使用一個UITableView一個UIViewController內(而不是一個UITableViewController,裏面有你提到的默認行爲)。

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    if let selectedIndexPath = tableView.indexPathForSelectedRow { 
     tableView.deselectRow(at: selectedIndexPath, animated: true) 
    } 
} 
+0

問題是,當您使用帶有可重用單元的表格時 - 它們全部被重新創建。所以'tableView.indexPathForSelectedRow'將在大多數情況下返回nil代碼 –

+0

你是對的 - 單元格不會被自己重新創建。謝謝。但無論如何'tableView.indexPathForSelectedRow'總是返回nil。 –

+0

你是否已經在其他地方調用deselectRow? (比如在didSelectRow ...) – InsertWittyName

1

其實它是UITableViewController的默認行爲。 如果您正在使用的UITableViewController查一下你的故事板這個盒子: clear on appearance

如果你不使用的UITableViewController,在viewDidAppear(這樣用戶就可以看到它,只是取消選擇所選單元格

+0

感謝您的解釋。但是我沒有使用'UITableViewController',我希望添加類似的代碼而不用重寫每個視圖控制器 –

相關問題