Когда я выбираю строку таблицы и нажимаю 'Ok'
под вкладкой city
, она выделяет строку, но когда я меняю вкладку на town
, она выделяет ту же строку на вкладке town
, хотя я ее не выбрал. Это если Я выделяю второй и третий строки под вкладкой city
, она выделяет второй и третий строки под вкладкой town
, а я ничего не делаю. Ниже мой кодКак предотвратить выделение строки таблицы в следующем сегменте?
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CityCell
switch (segCtrl.selectedSegmentIndex)
{
case 0:
myCell.myLabel.text = cityName[indexPath.row]
break
case 1:
myCell.myLabel.text = townName[indexPath.row]
break
default:break
}
return myCell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let cell = tableView.cellForRow(at: indexPath)!
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .alert)
let ok = UIAlertAction(title: "Ok", style: .default, handler: { (action) -> Void in
let cell = tableView.cellForRow(at: indexPath)!
cell.backgroundColor = UIColor(white: 1.0, alpha:0.5)
})
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: { (action) -> Void in
})
alertController.addAction(ok)
alertController.addAction(cancel)
present(alertController, animated: true, completion: nil)
}
Как предотвратить это выделение происходило в следующей вкладке и ограничить его, где я на самом деле выбрал строку?
Это не сохраняет выбор, когда я возвращаюсь. – leaner122
Да, он просто перезагружает ячейку, когда вы меняете вкладку. Если вы хотите сохранить выбор, вы должны сохранить выделение indexPath.row в массиве или глобальной переменной при нажатии «ОК». затем используйте оператор if, чтобы определить ячейку, которая должна быть выделена в инструкции switch. – Hezron
Это работает, но он запоминает только последнюю выбранную строку. То есть, если я выберу три строки, он выделяет только последнюю выбранную строку, а оставшиеся две строки не выбираются. – leaner122