滑动以编辑细节Swift和Parse

时间:2015-04-15 20:05:36

标签: ios swift parse-platform

在使用RowAction按钮时,我无法将数据传递到新的视图控制器以编辑字段。

我可以通过以下代码获取RowAction按钮转到新的视图控制器:

 override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?  {

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

        dispatch_async(dispatch_get_main_queue()) {
            self.performSegueWithIdentifier("EditDetails", sender: self)
        }   
    })
    return [editAction]
}

我可以使用以下代码使用普通的segue传递数据:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "EditDetails") {
        [segue destinationViewController].
        var editView = segue.destinationViewController as! EditDetailsTableViewController

    if let indexPath = self.tableView.indexPathForSelectedRow() {
            let row = Int(indexPath.row)
            editView.currentObject = objects[row] as? PFObject
        }

    }
}

然而,我似乎无法同时做到这两点。我希望用户能够单击“编辑”按钮,并填充这些字段的详细信息,并且可以编辑它们。

添加建议的解决方案......但是,仍然没有通过nil。

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

       let objectToEdit = self.objects[indexPath.row] as! PFObject
            self.performSegueWithIdentifier("EditDetails", sender: objectToEdit)

2 个答案:

答案 0 :(得分:0)

您是否只是尝试从该行中的某个对象传递值,例如textField?您可以保存当前的indexPath并直接获取它们,如果您需要一些textField值或将该行作为发件人传递

self.performSegueWithIdentifier("EditDetails", sender: cell) // get the cell from the indexPath or just pass the indexPath 

然后你可以在prepareForSegue

中使用它

答案 1 :(得分:0)

我遇到了同样的问题。检查线程。在底部是我自己的答案。

Table row action to segue with indexPath row

只需发送indexPath,然后在prepareForSegue中使用它即可使其工作。