在uitableview单元格上留下滑动删除按钮打开然后返回导致崩溃

Posted

技术标签:

【中文标题】在uitableview单元格上留下滑动删除按钮打开然后返回导致崩溃【英文标题】:Leaving swipe to delete button open on uitableview cell then going back causes crash 【发布时间】:2014-12-05 07:40:26 【问题描述】:

我已经在我的一个表格单元格上滑动删除。如果我在表格单元格上向右滑动以显示删除按钮并通过按后退按钮弹出视图,则应用程序因线程 1 崩溃:EXC_BAD_ACCESS。我已经将这一点作为它崩溃的原因。为什么会这样?

这是我点击返回https://www.dropbox.com/s/ggn4jqr0ox0tnta/Screenshot%202014-12-04%2023.39.25.png?dl=0时的样子

【问题讨论】:

添加异常断点以查找应用程序崩溃的位置,这将引导您走向正确的方向。 【参考方案1】:

viewWillDisappear中设置UITableview结束编辑为NO

[tableview setEditing:NO];

【讨论】:

似乎只发生在 Swift 项目中。【参考方案2】:

从表格视图中删除单元格的位置。您还必须从数组中删除数据。

【讨论】:

我什至没有按删除键。我只是向右滑动【参考方案3】:

当您向右滑动时,可能是您正在弹出控制器。因为视图正在消失,所以您必须编写 NANNAV 的行。

【讨论】:

【参考方案4】:

这是因为表的委托和数据源是简单的分配指针,而不是弱的。所以删除视图控制器后,包含表仍然可以向控制器发送事件。为避免这种情况,您可以在 dealloc 方法中手动将 tableview 委托和 datasouce 设置为 nil。顺便说一句,这不仅发生在表格中。

【讨论】:

以上是关于在uitableview单元格上留下滑动删除按钮打开然后返回导致崩溃的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 区分滑动删除和多行选择

iOS 7 UITableView 问题 - 当我们已经有一个单元格时尝试设置滑动以删除单元格

滑动删除单元格不会取消 UIButton 操作

UITableView 禁用滑动以快速删除特定单元格

UITableView以编程方式调用滑动操作

UITableView 以编程方式调用滑动操作