gpt4 book ai didi

uinavigationcontroller - 在 iOS7 中从 UINavigationController 滑动弹出时查看 Controller 生命周期

转载 作者:行者123 更新时间:2023-12-03 10:22:50 24 4
gpt4 key购买 nike

iOS 7 新的 swipe-to-pop 手势对 UINavigationController 的 View Controller 生命周期有何影响? ?

最佳答案

iOS 7 中的新功能是 UINavigationController 中的滑动弹出手势;您可以从左到右滑动手指来执行通常使用后退按钮完成的操作。您需要注意的是,pop 过渡是可取消的。

点击后退按钮仍然可以按您期望的方式工作:

  • 用户点击返回按钮
  • viewWillDisappear被称为
  • viewDidDisappear被称为
  • 弹出的 Controller 已发布

  • 完成滑动弹出就像点击后退按钮
  • 用户开始从左向右滑动
  • viewWillDisappear被称为
  • 用户完成滑动手势
  • viewDidDisappear被称为
  • 弹出的 Controller 已发布

  • 取消的滑动弹出就像这样
  • 用户开始从左向右滑动
  • viewWillDisappear被称为
  • 用户中止滑动手势(通过反转它,或者向右拖动不够远)
  • viewWillAppear被称为
  • viewDidAppear被称为

  • 相应地更新您的期望和 View 生命周期方法。

    值得注意的是 viewWillDisappear在所有情况下都会调用,即使用户中止弹出手势。这可能被证明是谎言;如果滑动弹出手势被中止,您的 View 不会消失,是吗?

    像我们所有人一样,我努力平衡 addObserver/removeObserver在我的应用程序中调用以防止崩溃。我重写了 View Controller 生命周期方法 viewWillAppear/viewWillDisappear做家务,维护一个 setupPerformed标志以防止在 View Controller 的生命周期内多次添加观察者。此外,我依靠 this trick确定 View Controller 是否即将从导航 Controller 的堆栈中弹出并随后释放,以便我可以知道何时准确地拆除我的观察者。

    iOS 7 复杂化了这种模式。当 viewWillDisappear 时,我不能再依赖 View Controller 被拆除。叫做。我不得不期待它可能会转身,大喊“开个玩笑”,然后继续调用 viewWillAppear/viewDidAppear。重新来过。

    关于uinavigationcontroller - 在 iOS7 中从 UINavigationController 滑动弹出时查看 Controller 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927878/

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