Ниже вы можете найти изображение подкласса UITableViewCell, который я создал. Каждая ячейка соответствует игре, в которую играют два участника, и имеет победителя, определенного в выбранном элементе управления (в редакторе указано «первый» и «второй»). Если это значение победителя изменяется, я хочу обновить информацию об этой игре и сохранить ее в Базовых данных. Проблема заключается в том, что когда я создаю соединение IBAction со своей раскадровкой, и оно срабатывает при смене победителя, у него нет контекста или знания о том, к какой игре оно принадлежит, и поэтому я не могу понять, какую игру обновить. победитель.
Как получить контекст игры, в которой действовал этот метод IBAction winnerChanged()
? Могу ли я как-то использовать superView или superClass UISegmentedControl, чтобы получить больше информации о UITableViewCell в целом?
@IBAction func winnerChanged(_ sender: UISegmentedControl) {
os_log("Saving games because winner was changed", type: .debug)
// need to know what game to change the winner of here
self.allGames.forEach({ updateOrCreateGame(game: $0) })
}
Вот мой код для моего подкласса UITableViewCell:
class ConferenceResultsTableViewCell: UITableViewCell {
@IBOutlet weak var gameWinnerControl: UISegmentedControl!
@IBOutlet weak var confidenceTextField: UITextField!
@IBOutlet weak var confidenceAverageAllUsersLabel: UILabel!
}