我是否必须使用segue在表视图控制器之间传输数据? 我在editActionsForRowAtIndexPath方法中编写了三个动作,我希望其中两个可以将数据传输到另一个表视图控制器(同时从原始表视图控制器中删除)而不使用segue,这是否可能?因为我看到的所有答案都是关于segue的?
如果有人能给我一个提示,我感激不尽,我被困在这里,只是暗示对我来说已经足够了!
提前致谢。
我的代码如下:
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let moveAction = UITableViewRowAction(style: .Default, title: "Move") { (action, indexPath) in
let moveMenu = UIAlertController(title: nil, message: "Move to", preferredStyle: .ActionSheet)
// I need to write two handler to handle the movements
let cancelationAction = UIAlertAction(title: "Move to Cancelation List", style: .Default, handler: moveToCancelation)
let achievementAction = UIAlertAction(title: "Move to Achievement List", style: .Default, handler: moveToAchievement)
let cancel = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
moveMenu.addAction(cancelationAction)
moveMenu.addAction(achievementAction)
moveMenu.addAction(cancel)
self.presentViewController(moveMenu, animated: true, completion: nil)
}
let deleteAction = UITableViewRowAction(style: .Default, title: "Delete") { (action, indexPath) in
// delete items from data source
self.wishList.removeAtIndex(indexPath.row)
self.saveWishList()
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
moveAction.backgroundColor = UIColor.lightGrayColor()
deleteAction.backgroundColor = UIColor.redColor()
return [moveAction, deleteAction]
}
答案 0 :(得分:2)
其他答案用segues讨论这个问题,因为通常最容易使用故事板来显示场景之间的交互,而segues则封装了这些交互。如果您在代码中完成所有操作,正如您的示例所示,则segues毫无意义。相反,您可以手动设置目标视图控制器上的属性。
答案 1 :(得分:0)
一周过去了,我已经实现了我想要的东西。 问题是,是的,我们需要segue,在此之前,我只是认为我只能将segue从实际按钮或其他东西转移到另一个视图,但实际上,我可以从视图控制器到另一个视图控制器创建一个segue指定哪个元素激活segue。这就是我做的, 在两个视图控制器之间创建一个segue,然后在上面命名segue,write handler,然后用特定的标识符执行segue。 我希望它可以帮助任何不熟悉的人。
我的新代码是下流式的:
"GeneralModel": {
"Language" : "english"
},
"AnoherClassName": {
"ClassProperty" : value
}