Касание ячейки не работает на didSelectRowAtIndexPath
Я использую Parse.com для создания своего приложения.
Я инициализировал PFQueryTableViewController
как мой подкласс.
Я не могу нажать на indexPath.row, чтобы ячейка приводила к другому viewController и передавала данные.
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("tapped")
//Nothing prints. The simulator cell doesn't even change color as it normally does...
}
В обычном проекте без Parse я нажимаю, и он ведет меня туда, куда я хочу, чтобы он вел. Я не понимаю, почему это не работает здесь.
Я ссылался на несколько ссылок, таких как:
- https://www.parse.com/questions/pfquerytableview-didselect-row-open-pbobject-in-uiwebview (устаревший и объективный-c)
- https://www.parse.com/questions/using-pfquerytableviewcontroller-in-detail-view (не работает)
- Метод didSelectRowAtIndexPath в PFQueryTableViewController (также не работает)
Никто не помог.
Я также пытаюсь использовать UIGestureecognizer в представлении из пользовательской ячейки. Это тоже не помогает...
Это инспектор атрибутов:
http://postimg.org/image/3omx3serh/
Я выбрал и отменил соответствующие части. Ничего не работает
РЕДАКТИРОВАТЬ: я также использую инициализатор:
override init(style: UITableViewStyle, className: String!)
{
super.init(style: style, className: className)
self.pullToRefreshEnabled = true
self.paginationEnabled = false
self.objectsPerPage = 25
self.parseClassName = className
self.tableView.rowHeight = 120
self.tableView.allowsSelection = false
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Есть идеи, почему я не могу нажать на камеру? Любые идеи о том, как нажать на клетку?
2 ответа
Я также использую инициализатор, к которому я обращаюсь. Этот PFTableViewController я строю только в коде. Для тех, кто строит код, а не раскадровку, убедитесь, что self.tableView.allowsSelection = true
, Видел другие ссылки, испытывающие схожие проблемы. Вот полный код инициализатора:
override init(style: UITableViewStyle, className: String!)
{
super.init(style: style, className: className)
self.pullToRefreshEnabled = true
self.paginationEnabled = false
self.objectsPerPage = 25
self.parseClassName = className
self.tableView.rowHeight = 120
self.tableView.allowsSelection = true
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Понял, что self.tableView.allowsSelection = false
был установлен на ложь вместо истины.
Я установил на true, и теперь это работает.
Во-первых, я бы проверил, есть ли в вашем табличном представлении функция "Взаимодействие с пользователем включена" внутри инспектора атрибутов.
Во-вторых, я бы изучил, какой класс был вставлен в инспектор идентификации вашего контроллера просмотра.