Estou seguindo o curso Swift parte 3 aula 5, porem não fiz o remover do item devido a um erro de compilação, estou usando uma função como no inicio da video aula. O problema é ao passar de uma classe para outra.
Segue os codigos para melhor entendimento:
RemoveViewController
class RemoveViewController{
let controller:UIViewController
init(controller: UIViewController) {
self.controller = controller
}
func show (_ meal: Meal, removeSelected:@escaping (UIAlertAction) -> Void){
let details = UIAlertController(title: meal.name, message: meal.details(), preferredStyle: UIAlertController.Style.alert)
let remove = UIAlertAction(title: "Remove", style: UIAlertAction.Style.destructive, handler: removeSelected)
details.addAction(remove)
let cancel = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel, handler: nil)
details.addAction(cancel)
controller.present(details, animated: true, completion: nil)
}
}
funcao sendo chamada:
@objc
func showDetails(recognizer :UILongPressGestureRecognizer){
if(recognizer.state == UIGestureRecognizer.State.began){
let cell = recognizer.view as! UITableViewCell
if let indexPath = tableView.indexPath(for: cell){
let row = indexPath.row
let meal = meals[row]
func removeSelected(action: UIAlertAction){
meals.remove(at: row)
tableView.reloadData()
}
RemoveViewController(controller: self)
.show(meal,removeSelected: removeSelected(action: UIAlertAction))
}
}
}