Я хочу выполнить одну строку кода, когда пользователь выбирает ячейку в моем TableView. Во время выполнения мой TableView заполняет данные в порядке, и ячейки действительно доступны для кликов/выбора. Но, когда ячейка выбрана, метод 'didSelectRowAtIndexPath пропускается/не вызывается. Я новичок в Swift, поэтому, возможно, я пропустил что-то очень простое. Структура моего кода выглядит следующим образом:iOS Swift didSelectRowAtIndexPath не работает
import UIKit
class TopicsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
//Number of Sections:
func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 2 }
//Number of Rows in Each Section:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int { return 3 }
//Contents of Each Cell:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell()
cell.textLabel?.text = "Data"
}
//Code below is skipped/ignored at runtime, no matter what I try:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Hello!")
}
Примечания: Я не использую жест распознаватель (другие темы по этому вопросу предложить контроллер жеста может быть виновником)
Вы возвращаете ячейку внутри cellForRowAtIndexPath? –
Является ли представление таблицы добавленным программным способом или в раскадровке? Programmatically/Storyboard: 'tableView.delegate = self' или в раскадровке проверить, был ли установлен делегат. – Eendje
Соединились ли вы с таблицами 'dataSource' * AND *' delegate' на контроллере просмотра? Похоже, что методы, которые работают, являются «dataSource», а тот, который не является «делегатом» – EmilioPelaez