gpt4 book ai didi

iphone - UIViewController viewDidAppear - 因为它被推送还是因为 subview 被弹出?

转载 作者:行者123 更新时间:2023-12-03 18:45:07 25 4
gpt4 key购买 nike

在我的应用程序中,我有大约十几个不同的 View Controller ,以不同的顺序插入堆栈或从堆栈中弹出。当一个 View 出现时(我正在使用 viewDidAppear 方法),我需要确定这是因为该 View 刚刚被插入堆栈还是因为它的 subview 之一被从堆栈中弹出。

我回答了这个问题:viewWillDisappear: Determine whether view controller is being popped or is showing a sub-view controller

但我不认为这对我有多大帮助。请问有什么建议吗?

最佳答案

如果您可以管理它,最好的解决方案是尝试修改您的代码,以便 Controller 是刚刚被推送还是它的子 Controller 刚刚弹出都无关紧要。从根本上来说, View Controller 在其 View 和应用程序操作的数据之间进行协调。只要该数据是最新的, Controller 就不应该关心其 View 出现之前发生的情况。您的 Controller 当前根据应用程序的先前状态执行的任务(例如更新数据)可能确实最好位于不同的类中。

如果您使用 Storyboard,另一种可能性是依赖 -prepareForSegue:sender: 而不是 -viewDidAppear。您在该方法中传递的 Segue 具有标识源 View Controller 和目标 View Controller 的属性,这通常足以告诉您 Controller 如何成为当前 Controller 。

如果这两种方法都不适合您的情况,请考虑将您的配置代码移至一种或多种不同的方法。您面临的问题的根源是 -viewWillAppear 实际上并不意味着您需要它。创建一个确实意味着您需要的方法,例如-childControllerFinished,并使用that来完成您需要的配置工作。

关于iphone - UIViewController viewDidAppear - 因为它被推送还是因为 subview 被弹出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591434/

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