【问题标题】:why would I sometimes lose Navigation items when clicking to return to previous screen in UINavigationController app?为什么在 UINavigationController 应用程序中单击返回上一屏幕时有时会丢失导航项?
【发布时间】:2011-05-09 03:20:19
【问题描述】:

有谁知道为什么在 UINavigationController 应用程序中单击返回上一屏幕时有时会丢失导航项?

背景:

  • 拥有一个使用 UINavigationController 和 UITableViews 的 iPhone 应用程序
  • 98% 的时间一切都很好,如果我在详细屏幕上并单击“返回”按钮,一切都会找到。该应用将您带回主屏幕(弹出堆栈视图)
  • 一小部分时间,在 iPhone 设备本身上,我单击返回,看到一些动画开始,但我最终 (a) 在同一页面上,并且 (b) 没有导航按钮或工具栏按钮出现
  • 在这种状态下,您显然无法执行任何操作,必须终止应用并重新启动

有什么想法吗?怎么找故障? (注意它只是在我注意到的实际设备上进行测试时偶尔发生,并且可能需要数小时/数天才能发生)

谢谢

【问题讨论】:

    标签: iphone ios uitableview uinavigationcontroller


    【解决方案1】:

    在 viewController 的 didReceiveMemoryWarning 函数中添加警报。操作系统在某些内存警告(通常不会在模拟器中发生)时调用 viewDidUnload。

    【讨论】:

    • 嗨,Gary - 那么您认为这样的内存警告会导致应用程序中出现“有趣”的行为吗?即IOS不会让应用程序正常运行或在需要时将其关闭吗? (我猜我的意思是,我不确定)
    • 我在使用 MKMapView 时看到了类似的情况,当发生内存警告时,IntelligentSplitViewController 的条形按钮消失并在切换方向时重新出现。无论如何,这只是您尝试的想法。我不能肯定地说你有同样的问题。
    • 那么添加警报实际上是否有助于解决 Gary 的问题,或者至少让用户知道发生了什么并且他们应该切换方向?你解决过根本原因吗?
    • 我实际上已经停止使用 IntelligentSplitViewController,因为 Apple 不建议在标签栏中使用 SplitViewController。有点不同的故事。 :)
    • 您可以尝试以下代码在模拟器中模拟内存警告。 gist.github.com/956403
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多