2015-08-09 4 views
2

Если приложение работает, когда пользовательский UITableViewCell используется в mainVC, я могу редактировать CoreData в inputTableVC. Теперь я пытаюсь сделать то же самое, но потом, когда UITableViewRowAction «Редактировать» используется. Функция «Удалить» уже работает.Выполнение элемента управления segue с помощью UITableViewRowAction

Есть ли способ реализовать prepereForSegue или fetchRequest в UITableViewRowAction?

Заранее спасибо.

// Mark- My current working Segue code 

override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if segue.identifier == "EditRaptor" { 
    let customMainVCTableCell = sender as! CustomMainVCTableCell 
    let indexPath = tableView.indexPathForCell(customMainVCTableCell) 
    let addRaptorVC:AddRaptorVC = segue.destinationViewController as! AddRaptorVC 
    let addRaptor:AddRaptorCoreData = fetchedResultController.objectAtIndexPath(indexPath!) as! AddRaptorCoreData 
    addRaptorVC.addRaptor = addRaptor 
    } 
} 
// Mark- The TableViewRowAction that needs to be fixed 

public func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { 
    let managedObject:NSManagedObject = fetchedResultController.objectAtIndexPath(indexPath) as! NSManagedObject 


    var deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete" , handler: { 
     (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in 

     self.managedObjectContext?.deleteObject(managedObject) 
     self.managedObjectContext?.save(nil) 

    }) 
    var editAction = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit" , handler: { 
     (action:UITableViewRowAction!, indexPath:NSIndexPath!) in 



    }) 

    return [deleteAction,editAction] 
} 
+0

так что вы хотите, чтобы выполнить переход на действия редактирования? – Firas

+0

Yea ... Мне нравится выполнять то же действие, что и при нажатии на конкретный tableViewCell вы переходите к следующему viewController для редактирования данных. Так что теперь я могу сделать это с помощью функции prepareForSegue. Но это не работает, когда я называю это кодом действия. – DavyG

+0

, пожалуйста, проверьте мой ответ и примите его, если он сработает. – Firas

ответ

0

Я думаю, что вам нужно, это позвонить performSegueWithIdentifier функции внутри кода действия, а затем prepareForSegue будет автоматически вызываться, прежде чем перейти к следующему viewController

+0

Когда я попробую ваше решение, я получаю сообщение об ошибке, что mainVC Не удалось передать значение типа в CustomTableViewCell. Я пытался исправить это в течение недели, но ничего не работает. – DavyG