我在我的应用中成功使用了SideMenu 2.3.4,然后升级到v3.1.4。我做了一些调整到API更改所需的mod,然后运行我的应用程序 - 它在以下UI操作后崩溃:
在应用程序崩溃之前,菜单未响应最后一次点击而打开。在调试器下,我看到在2之后,viewDidLoad然后为该新视图调用了viewWillAppear。 3之后,调用了相同视图的viewWillDisappear,viewDidDisappear和viewWillAppear,所有这些都没有在显示中进行任何更改。
崩溃发生在viewWillAppear中,因为我的代码依赖于viewDidLoad,这是在viewDidDisappear之后调用的第一个东西。 AFAIK,合理的是,因为viewDidDisappear应该意味着视图被关闭,因此必须重新加载并且在调用任何其他生命周期方法之前调用viewDidLoad,即之前不应该调用viewWillAppear viewDidLoad中。
我是否误解了iOS视图的生命周期?这是SideMenu 3.1.4中的错误吗?
谢谢,
标记
答案 0 :(得分:0)
仔细阅读网上的文档和文章表明我确实误解了生命周期方法。
viewDidLoad没有反面(例如,viewDidUnload),但在viewDidDisappear中可以这样做:
if (isBeingDismissed || isMovingFromParentViewController) {
// Do something - viewWillAppear will NOT be called before viewDidLoad.
}
这消除了我所看到的崩溃。
标记