我有一個有兩個段的控制器。每個段有一個共同的tableView。 當切換段時,我怎樣才能保存所選單元格?你能不能給出一些想法來實作它呢?
當切換段時,我只能保存一個選定的行。
ViewModel
var years: [String] = [] 。
var genres: [String] = []
var selectedGenr: Int?
var selectedYear: Int?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if segmentedControl.selectedSegmentIndex == 0 {
if viewModel.selectedGenr == indexPath.row {
viewModel.selectedGenr = nil
} else {
viewModel.selectedGenr = indexPath.row
}
} else {
if viewModel.selectedYear == indexPath.row {
viewModel.selectedYear = nil
} else {
viewModel.selectedYear = indexPath.row
}
}
tableView.reloadData()
}
}
uj5u.com熱心網友回復:
你可以在視圖模型中把選擇作為一個串列來存盤 然后在表視圖中
偽裝代碼
if segmentedControl.selectedSegmentIndex == 0 {
if viewModel.selectedYears.contains(indexPath.row) {
viewModel.selectedYears.remove(indexPath.row)
}
else {
viewModel.selectedYears.append(indexPath.row)
}
}
uj5u.com熱心網友回復:
if segmentedControl.selectedSegmentIndex == 0 {
if self.selectedIndexesForGenres.contains(indexPath.row) {
if let index = self.selectedIndexesForGenres.firstIndex(of: indexPath.row) {
self.selectedIndexesForGenres.remove(at: index)
}
} else {
self.selectedIndexesForGenres.append(indexPath.row)
}
}
else {
if self.selectedIndexesForYears.contains(indexPath.row) {
if let index = self.selectedIndexesForYears.firstIndex(of: indexPath.row) {
self.selectedIndexesForYears.remove(at: index)
}
} else {
self.selectedIndexesForYears.append(indexPath.row)
}
}
self.tableView.reloadData()
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/311719.html
標籤:
下一篇:具有多個堆疊視圖的自定尺寸單元格
