gpt4 book ai didi

ios - 模态视图 Controller 生命周期?

转载 作者:行者123 更新时间:2023-11-28 22:18:17 24 4
gpt4 key购买 nike

我已经阅读了 Apple 的 design patterns 文档和一些其他指南,但有些地方我无法理解。

遇到viewControllers之间传递变量的问题,看到了delegate选项。比我意识到,如果你从 viewControlAviewControlB ,你需要更新一些 mutableArray 从 B 到 A ,你可以发布一个B 和 A 的委托(delegate)将得到它。

但是,如果A 可以听到委托(delegate),那意味着在我去B 之后A 还活着。我在想,只有当你在 View 之间push时,前一个场景还活着,但是当过渡是modal时,前一个场景实际上是死的。

每个 View Controller 类的生命周期是什么?他们永远活着?

最佳答案

如果你有两个 UIViewController,分别是 AB,并且你想以模态方式显示 BA 保留在内存中。没有人对 A 说要删除(在代码的其他部分删除它之前,这是真的)。​​

因此,A 可以响应 B,直到后者 (B) 仍然是 presentedViewController >A(presentingViewController)。

关于delegate,你可以避开它。例如,假设 AB 作为属性,如

@property (nonatomic, strong) NSMutableArray* myArray;

在将 B 呈现为模态 Controller 之前,您可以说

B* b = // alloc init
b.myArray = [self myArray];
// present modally B

现在他们将接触同一个数组。当 B 被关闭时(如果你没有引用它,它将从内存中释放),在 myArray (在 A 内)你会发现在 B 中完成的修改。

显然这只是一个例子。这并不是不使用 delegate 的建议。

如需进一步引用,我会查看 Presenting View Controllers from Other View Controllers在 Apple 文档中。

关于ios - 模态视图 Controller 生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062094/

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