使用UITableViewRowAction执行segue控件

时间:2015-08-09 21:24:56

标签: swift cocoa-touch core-data ios8 uitableviewrowaction

如果在mainVC中点击自定义UITableViewCell时应用程序正常工作,我可以编辑inputTableVC中的CoreData。 现在我正在尝试同样的事情但是当UITableViewRowAction"编辑"被窃听。 "删除"功能已经起作用了。

有没有办法在UITableViewRowAction中实现prepereForSegue或fetchRequest?

提前致谢。

// 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]
}

1 个答案:

答案 0 :(得分:0)

我认为您需要在操作代码中调用performSegueWithIdentifier函数,然后prepareForSegue将自动调用,然后转移到下一个viewController