Ios 永久删除行(或数组项)-swift 3/4

Ios 永久删除行(或数组项)-swift 3/4,ios,swift,uitableview,Ios,Swift,Uitableview,从UITableView成功删除一行后,我转到另一个视图控制器,但当我返回到UITableView时,删除的行又回来了。我错过什么了吗?我对Swift比较陌生 代码如下: func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { let delete = UITableViewRowAction(style: .des

UITableView
成功删除一行后,我转到另一个视图控制器,但当我返回到
UITableView
时,删除的行又回来了。我错过什么了吗?我对
Swift
比较陌生

代码如下:

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let delete = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
        self.queuelayout.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .fade)
        print(self.queuelayout)
    }
    return [delete]
}
我还尝试了以下代码:

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete{
        queuelayout.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .right)
    }
} 

期待您的帮助。

我检查了您的顶级代码。他们很好。唯一可能的原因是,正如你所说,你去了另一个VC,你已经从内存中删除了tableViewController。下面是一个简单的例子:

如果您的tableView是最正确的,并且当您返回中间vc时,您的右视图将从内存中删除。然后,当您单击“分配”按钮时,实际上,您正在加载一个全新的tableViewController

因此,将调用viewDidLoad,并且tableViewController将再次初始化为原始状态

可以在func viewDidLoad()处设置断点来检查这种情况。如果你回去时不叫这个,你就可以走了。否则,一切都将重置。您删除的所有内容都将按原样重新出现

这是一个简单的例子。你的案子可能有点复杂。但是如果您的tableviewcontroller名为ViewDidLoad(),那么您肯定会遇到一些麻烦


希望这对您有所帮助。

您是否在其他地方填写了
queuelayout
?您的数据模型是
queuelayout
(根据Swift命名约定应该是
queuelayout
)吗?你能确认这个条目真的被删除了吗?听起来好像不是。是否将数组分配给数据模型中的其他变量,如
guard let array=arrayooptional else{return[]}
。请记住数组是值类型,因此这样做会创建数组的副本。感谢@Carpsen90&duncac,感谢您的回复,很抱歉我不得不出差上班,但我现在要回去了。。。我认为E.Coms是对的,我在viewDidLoad调用数组:“queuelayout=createArray()”,那么我如何解决这个问题呢?你们是如何从数组中永久删除一个项目的?@duncac请看上面的注释。谢谢@E.Coms,很抱歉延迟回复,不得不出差上班,我现在就回来。您是对的,我正在viewDidLoad调用数组:“queuelayout=createArray()”。。。那么我该如何解决这个问题呢?如何从数组中永久删除项?一种方法是在AppDelegate中使用全局变量:队列布局和init。另一个是删除后将数组保存为默认值。然后每次都从默认的propertylist中读回它。好的,谢谢你,我将对这些选项及其实现做一些研究。如果你有这方面的资源/链接,请让我知道。再次感谢你,伙计。我会通知你的。