У меня есть tableView
с NSFetchedResultsController
! Я полностью выполнил методы делегатов NSFetchedResultsController
и отлично работает! Моя проблемная строка представляет UIAlertController
. UIAlertController
хорошо работает на tableView
, но не работает внутри UISearchController
. Я пытаюсь удалить объекты внутри UISearchController
. При нажатии на кнопку удаления Xcode дает мне ошибку следующим образом:«Данные Swift Core» и UISearchController
Вот коды моего commitEditingStyle
метода и UIAlertController
, UIAlertAction
«s handler
:
` // Override для поддержки редактирования вида таблицы , переопределение функ Tableview (Tableview: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { если editingStyle == .Delete {
let itemToDelete:Manager = self.fetchedResultsController.objectAtIndexPath(indexPath) as! Manager
prepareForDelete(itemToDelete)
// Delete the row from the data source
//tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
} else if editingStyle == .Insert {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
// Delete Action
var itemsToDelete:Manager!
// Delete function
частная функ prepareForDelete (managedObject: менеджер) {
//
self.itemsToDelete = managedObject
// Alert
let alert:UIAlertController = UIAlertController(title: "Warning!", message: "Do you want to delete this note?", preferredStyle: UIAlertControllerStyle.Alert)
// Actions
let deleteAction:UIAlertAction = UIAlertAction(title: "Delete", style: UIAlertActionStyle.Destructive, handler: deleteHandler)
// Actions
let cancelAction:UIAlertAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil)
// Add actions to the alert
alert.addAction(deleteAction)
alert.addAction(cancelAction)
// Present alert
self.presentViewController(alert, animated: true, completion: nil)
}
func deleteHandler(alert:UIAlertAction) -> Void {
// Delete from the moc
if let delete = self.itemsToDelete {
self.managedObjectContext.deleteObject(delete)
do {
// Save changes
try self.managedObjectContext.save()
} catch {
}
self.itemsToDelete = nil
}
}`
Как отключить UIAlertController
? Мне не нужны оповещения внутри UISearchController
. Поскольку эта функция не работает внутри UISearchController
Спасибо за внимание!
Итак, если вы ищете, вы не хотите, чтобы предупреждение всплывало - не удалялось? – tktsubota
Я хочу удалить объекты с предупреждением на 'tableView'! Это работает хорошо. Но я не могу удалять объекты внутри 'UISearchController', когда активен' UISearchController'. Мне нужны предупреждения на 'tableView', вне' UISearchController'! Но мне не нужно этого. –
Спасибо за внимание –