Xcode:Swift - 将 TableView 连接到委托会导致点击单元格两次推送编辑控制器

Xcode: Swift - Connecting TableView to delegate causes tapping on cell to push the Edit Controller twice

提问人:Abednego David 提问时间:7/26/2021 更新时间:7/26/2021 访问量:58

问:

表视图放置在视图控制器上。当点击特定单元格以查看/编辑数据时,它会动画推送两次,相同的编辑视图控制器出现两次。点击后退按钮时也是如此,因为我必须关闭同一页面两次才能返回表视图单元格。

当我不小心与委托断开连接时,它没有发生,我不知何故它自行修复。但是我无法使用滑动操作来删除单元格。因此,我检查了问题并重新连接了代理。因此,它开始再次推送同一页面两次,然后我意识到它与委托或数据源有关,后者通过从表视图拖动来连接。

非常感谢一些关于为什么会发生这种情况以及如何解决它的帮助。

当我连接到代理时,我意识到问题发生了

设法截取了两次推送编辑VC的屏幕截图

必须返回两次才能到达表视图 VC

iOS Swift iPhone Xcode UITableView

评论

1赞 vadian 7/26/2021
我猜你也在代码中调用了 segue

答:

1赞 Kush Bhavsar 7/26/2021 #1

您必须同时使用 'tableView(_:didSelectRow:)' 和 'Storyboard Segue' 来推送 ViewController。

如果通过点击 Storyboard 中的单元格触发 segue,则不必在 tableView(_:didSelectRow:) 回调中调用 performSegue()。

您可以:

  1. 尝试删除“Storyboard Segue”。或
  2. 尝试删除代码上的 tableView(_:didSelectRow:) 回调。

它仍然会执行 Segue,但只有一次。

评论

0赞 Abednego David 7/27/2021
感谢您@SwiftiOS的建议。您的第二个建议解决了问题。但是,当我尝试第一次尝试时,编辑视图控制器显示为空白。我把它留给可能面临相同问题的其他用户。