gpt4 book ai didi

iOS SideMenu v3.1.4 乱序调用生命周期方法

转载 作者:行者123 更新时间:2023-11-30 12:01:25 28 4
gpt4 key购买 nike

我在我的应用程序中成功使用了 SideMenu 2.3.4,然后升级到 v3.1.4。我制作了一些需要调整 API 更改的模块,然后运行我的应用程序 - 在执行以下 UI 操作后它崩溃了:

  1. 点击导航栏按钮打开菜单
  2. 点击可加载另一个 View 的项目(菜单关闭,新 View 出现)
  3. 点击导航栏按钮再次打开菜单

应用崩溃前,菜单未响应最后一次点击而打开。在调试器下,我看到在 2 之后,为该新 View 调用了 viewDidLoad 然后 viewWillAppear 。 3之后,调用同一 View 的viewWillDisappear、viewDidDisappear和viewWillAppear,所有显示都没有任何变化。

崩溃发生在 viewWillAppear 中,因为我的代码认为 viewDidLoad 是 viewDidDisappear 之后调用的第一个东西。 AFAIK,这是合理的,因为 viewDidDisappear 应该意味着 View 已关闭,因此必须重新加载并在调用任何其他生命周期方法之前调用 viewDidLoad ,即,之前不应调用 viewWillAppear viewDidLoad。

我是否误解了 iOS View 生命周期?这是 SideMenu 3.1.4 中的错误吗?

谢谢

标记

最佳答案

仔细阅读网上的文档和文章表明我确实误解了生命周期方法。

没有 viewDidLoad 的对立面(例如 viewDidUnload),但在 viewDidDisappear 中可以做到这一点:

if (isBeingDismissed || isMovingFromParentViewController) {
// Do something - viewWillAppear will NOT be called before viewDidLoad.
}

这消除了我所看到的崩溃。

标记

关于iOS SideMenu v3.1.4 乱序调用生命周期方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168973/

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