у меня есть табличное представление, которое не удаляет данные из ячейки после того, как я удаляю все элементы из массива и вызываю tableview.reloadata, в ячейке табличного представления у меня есть одна метка, и текст остается
gameScore являетсяэкземпляр моего класса, который имеет функцию для удаления всех элементов из массива
func reset(winnerPlayer: String){
let alertView = UIAlertController(title: "Winner:" + " " + "\(winnerPlayer)", message: "", preferredStyle: .alert)
alertView.addAction(UIAlertAction(title: "Restart", style: .destructive, handler: { action in
print("Tapped")
self.gameScore.resetArrays()
DispatchQueue.main.async {
self.teamA_tableview.reloadData()
}
}))
я вызываю функцию с помощью метода делегата на другом контроллере представления
if teamA_totalScore >= winningScore {
print("Winner")
self.dismiss(animated: true, completion: nil)
delegate?.reset(winnerPlayer: (delegate?.gameScore.teamA_name)!)
}
}else{
delegate?.teamA_totalScore.text = ""
}
это мой контроллер представления popUpгде объявляем делегата
class PopUpViewController: UIViewController {
@IBOutlet weak var whiteView: UIView!
@IBOutlet weak var teamsNameSegControl: UISegmentedControl!
@IBOutlet weak var pointsTextField: UITextField!
@IBOutlet weak var cancelButton: UIButton!
@IBOutlet weak var addButton: UIButton!
var winningScore = Int()
weak var delegate: GameScoreViewController?
....
}
, это мой контроллер представления gameScore, и где я устанавливаю делегата
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toPopUp"{
let popUpView = segue.destination as! PopUpViewController
popUpView.delegate = self
}
я вызываю функцию сброса, которая есть в моем контроллере представления gameScore из моегоконтроллер всплывающего окна
это мой делегат и источник данных для просмотра таблицы, я использую только teamA_tableView для проверки сброса функции, я пробовал использовать обе команды и teamB_tableview, но не сработал
extension GameScoreViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var numberOfRows = Int()
if tableView == teamA_tableview{
numberOfRows = gameScore.teamA_points.count
}else if tableView == teamB_tableview{
numberOfRows = gameScore.teamB_points.count
}
return numberOfRows
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView == teamA_tableview {
let cell = tableView.dequeueReusableCell(withIdentifier: "teamA_scoreCell", for: indexPath) as! ScoreTableViewCell
cell.teamA_label.text = String(gameScore.teamA_points[indexPath.row])
}else if tableView == teamB_tableview {
let cell = tableView.dequeueReusableCell(withIdentifier: "teamB_scoreCell", for: indexPath) as! ScoreBTableViewCell
cell.teamB_label.text = String(gameScore.teamB_points[indexPath.row])
}
return UITableViewCell()
}
}