gpt4 book ai didi

Swift - 在 View 之间切换和通过 View 传递数据时重用 View 的旧实例

转载 作者:行者123 更新时间:2023-11-30 13:37:12 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的应用程序,其工作原理如下:

当用户单击“挑选”按钮时,它将显示一个表格 View 。当用户在 TableView 中选择一行时,它将显示第一个 View 并在标签上显示数据。 enter image description here

我有两个问题:

  1. 每次单击“挑选”按钮时,都会创建 TableView Controller 的一个新实例;但不会重用现有的。我怎样才能让它重用旧的?

  2. 我想将选定的数据传递到 Root View 。我尝试创建一个 segue 以在用户选择单元格时显示 Root View ,然后在 prepareForSegue 方法上传递数据。但是,我遇到了上面的内存泄漏问题。如何在屏幕之间传递数据而不泄漏内存?

最佳答案

  1. 听起来您可能正在制作圆形 View 层次结构。当您点击 TableView 中的单元格时,如果您要推送第一个 VC 的新实例,那么在我看来,这是错误的方法。

    相反,您应该将数据传递回第一个 VC,然后关闭第二个 VC。然后,当您再次点击“选取”按钮时,它是表格 View 的一个新实例,但您之前的实例已从内存中删除。

    这允许在任何给定时间使用最小量的内存。当 TableView Controller 不在屏幕上时,它不需要位于内存中。

  2. IMO,在导航堆栈中传递数据的最佳方法是使用协议(protocol)和委托(delegate)。如果您熟悉的话,它类似于 Objective-C 协议(protocol)和委托(delegate)的工作方式。这是 Apple 关于两者的文档。代表部分大约位于页面下方的 1/3 处。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html

关于Swift - 在 View 之间切换和通过 View 传递数据时重用 View 的旧实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com