我正在尝试使用按钮一次移动我的tableView的整个部分。我希望它将所有选定的行移动到另一个tableView并从第一个删除它们。第一个tableView数据保存在SList中,第二个是SCList。两个实体都有属性item,qty,desc,只是第一个字母从sl变为sc(即slitem到scitem)。我遇到的问题是将数据从SList实体更改为SCList实体。如何让它从SList实体中删除数据并更改为SCList并将其添加到相应的tableView?
按钮代码:
@IBAction func Move(sender: AnyObject) {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! SLTableViewCell
let passValue = cell.cellLabel!.text
print(passValue)
self.performSegueWithIdentifier("moveToSC", sender: self)
}
Segue Code:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "editItem" {
let SListController:SLEdit = segue.destinationViewController as! SLEdit
SListController.item = selectedItem
}
if segue.identifier == "moveToSC" {
let SCListController:SCart = segue.destinationViewController as! SCart
SCListController.item = item
}
我评论了"如果segue.identifier ==" moveToSC""代码并且它是分段但没有传递任何信息。所有打印都是"可选("标签")"没有任何传递或删除。
我不确定是否需要其他代码。如果您需要查看,请告诉我,我将编辑我的代码。
我试图不使用didSelectRow方法,因为这会将第0行中的行更改为第1部分。我想使用按钮一次移动所有内容。我甚至不得不捣乱实体,还是应该移动并自行更改?我很遗憾......
答案 0 :(得分:0)
您问题的直接答案是您需要创建SCList
的实例,将其属性值设置为与SList
对象的属性相同,然后删除{{ 1}}对象。我从你之前的问题中了解到你正在为第一个tableView使用fetchedResultsController,它有两个部分;要移动的对象位于第1部分:
SList
您的问题的答案越长,将数据从一个实体复制到另一个实体并不理想 - 它表明您可能需要更多地考虑数据模型。例如,您可以使用一个附加属性来反映项目应该出现在哪个tableView中。您可以为获取的结果控制器指定谓词,以确保表视图仅显示相应的项目。 "移动"然后,一个项目就可以很容易地改变新属性的值。