#swift
#swift
Вопрос:
Я пытаюсь обновить различные метки и текстовые поля в моем контроллере представления на основе того, что пользователь выбирает в TableView
Я использую Swift 4.2 с TableView в обычном контроллере представления, а не TableViewController, и просмотрел все эти форумы и другие, используя различные функции, чтобы проверить, выбрана ли ячейка, а затем сделать что-то на основе каждой выбранной ячейки
Это функция, которую я продолжаю видеть на форумах, и, похоже, она ничего не делает, поскольку метка, которую я пытаюсь изменить, не меняется в зависимости от того, какая ячейка выбрана:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
whichGPULbl.text = "(gpuList[indexPath.row])"
}
В качестве примечания: gpuList — это массив, который TableView использует для своего содержимого
Итак, если в TableView выбрана ячейка «GTX 1070», метка «whichGPULbl» должна отображать «GTX 1070», а затем обновляться каждый раз, когда пользователь выбирает новую ячейку
Ответ №1:
Если настройка верна, то вы пропускаете
tableView.delegate = self
Комментарии:
1. Большое вам спасибо. В какой-то момент у меня было это в viewDidLoad (), но, должно быть, я удалил это по ошибке. Еще раз спасибо
2. Я попробовал это, однако я получал сообщение об ошибке, в котором говорилось, что я не могу назначить ViewController «UITableViewDelegate», поэтому я добавил «UITableViewDelegate» в заголовок класса, и когда ошибка исчезла, я получил ошибку SIGABRT в разделе «@UIApplicationMain». Я довольно новичок в swift, поэтому я не знаю, что я здесь делаю не так
3. После еще нескольких попыток я понял, что мне также не хватает «TableView.DataSource = self» и заголовка класса, который к нему прилагается, поэтому после применения автоматического исправления, чтобы сделать одну из функций TableView «внутренней», все заработало