gpt4 book ai didi

iphone - 奇怪的 UINavigationController 导航栏行为是否是由于内存泄漏造成的?

转载 作者:行者123 更新时间:2023-11-29 05:03:50 25 4
gpt4 key购买 nike

我的导航栏行为很奇怪,例如,当我点击后退按钮时,显示的屏幕是上一个屏幕,但是导航栏项目确实发生了变化。所以我只剩下屏幕 A,但屏幕 B 上有导航栏按钮。

这可能是由于内存泄漏造成的吗?我仍然注意到我的应用程序:

  1. 这种行为似乎会发生:

    • 如果我触发内存,立即通过模拟器菜单发出警告,或者
    • 在设备开启后有一段时间[没有被杀然后作为应用程序重新启动]。
  2. 我确实有一些内存泄漏尝试清理(即 Profiler突出显示“泄漏区 block ”中的项目部分)

关于故障查找为什么按后退按钮最终会出现奇怪状态的根本原因有什么技巧吗?例如屏幕显示在上一个父 View 上,但导航栏项目不会更改...

更新 - 我终于消除了应用程序中的内存泄漏问题,但我注意到导航栏问题仍然存在。我想这并不能证实我的问题的答案一般是否定的,但在我的具体情况下,这不是内存泄漏......

最佳答案

来自苹果:

The navigation controller updates the navigation bar each time the top view controller changes. Thus, these changes occur each time a view controller is pushed onto the stack or popped from it. When you animate a push or pop operation, the navigation controller similarly animates the change in navigation bar content.

基于此,我将首先在 View 定义中查找错误或错误配置。如果您通过 NIB 定义 View ,请检查是否有任何 InterfaceBuilder 警告。确保两个 UIViewController 中的 View 层次结构都是正确的。还要检查 View 生命周期方法中可能存在的错误:viewWillAppear:viewWillDisappear: 等。

实际上,如果您可以发布一些屏幕截图和/或代码,那就太好了。谢谢!

关于iphone - 奇怪的 UINavigationController 导航栏行为是否是由于内存泄漏造成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172387/

25 4 0