gpt4 book ai didi

ios - 如何判断我的 ViewController 何时再次成为堆栈顶部?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:16:34 26 4
gpt4 key购买 nike

当使用 UINavigationController 时,当用户“深入研究”(将另一个 Controller 插入堆栈)时,我有机会处理它

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

但是我该如何处理相反的情况呢?当用户按下后退按钮时, Controller 再次成为顶级 Controller ,我希望它有可能更新一些状态,因为堆栈上的 Controller 可能已经改变了一些我想反射(reflect)在现在可见的 Controller 中的东西。

或者,通过模拟,当我使用模态转场呈现新 Controller 时,我会选择一种方法,当呈现的 Controller 退出时,该方法被称为展开转场。我怎样才能对导航堆栈托管 Controller 执行相同的操作?

(请随意在上面加上更好的标题)

最佳答案

事实证明,您可以根据对 isMovingToParentViewController 的响应来消除歧义。如果为 YES,则您的 Controller 刚刚被放置在堆栈的最顶端。如果它是 NO,您的 Controller 将返回到最顶层,在其顶部的另一个插入被弹出。示例:

-(void)viewWillAppear:(BOOL)animated{
if (self.isMovingToParentViewController == NO) { // returning from even higher controller
[self updateForChangesThatMayHaveHappenedInSubController];
}
[super viewWillAppear:animated];
}

关于ios - 如何判断我的 ViewController 何时再次成为堆栈顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22817925/

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