【发布时间】:2021-08-24 16:28:43
【问题描述】:
我有一个带有两个段的分段控制器。每个段都有一个公共的 tableView。 切换段时如何保存选定的单元格?您能否提供一些想法如何实现它?
切换段时只能保存一个选定的行。
视图模型
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()
}
}
【问题讨论】:
-
我认为问题在于您的视图层次结构。如果有一个“共享”表格视图,它不应该在分段控件的上方吗?如果它属于两个段,每个段中不应该有两个表视图(具有相同的数据源)吗?如果需要,我可以发布代码。
-
听起来你已经为自己命名了
UISegmentedControl'segmentedControl'。不管你怎么称呼它,“segmentedControl”是从哪里来的?它的IBOutlet声明在哪里?
标签: swift uitableview uikit tableview