在使用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)
答案 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中使用它即可使其工作。