Я хочу позвонить didSelectRowAtIndexPath()
, но событие не будет запущено, когда я в режиме редактирования. Это мой код:No didSelectRowAtIndexPath() в tableView при редактировании
override func viewDidLoad() {
tableView.delegate = self
tableView.dataSource = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.tableView.deselectRowAtIndexPath(indexPath, animated:true)
let data = fetchedResultsController.objectAtIndexPath(indexPath) as! NSManagedObject
...
}
@IBAction func updateButtonClicked(sender: AnyObject) {
toggleEditing()
}
func toggleEditing() {
if self.editing {
super.setEditing(false, animated: true)
self.title = "Sicherung"
} else {
super.setEditing(true, animated: true)
let cancelBarButton = UIBarButtonItem(title: "Fertig", style: .Plain, target: self, action: "stopEdit:")
navigationItem.rightBarButtonItem = cancelBarButton
navigationItem.hidesBackButton = true
self.title = "Sicherung bearbeiten"
}
}
func stopEdit(sender: AnyObject) {
super.setEditing(false, animated: true)
let cancelBarButton = UIBarButtonItem(title: "Bearbeiten", style: .Plain, target: self, action: "toggleEditing")
navigationItem.rightBarButtonItem = cancelBarButton
navigationItem.hidesBackButton = false
}
didSelectRowAtIndexPath()
вызывалась только когда self.editing == false
.
Что я делаю неправильно?
[Из документов] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/#//apple_ref/occ/intfm/UITableViewDelegate/tableView:didSelectRowAtIndexPath :): "_This метод не вызывается, когда для свойства редактирования таблицы установлено значение YES (то есть, представление таблицы находится в режиме редактирования) _ " – Alladinian
uupps, не смотрите это! Любое обходное решение? –