1

我的 ios 应用程序是基于 UITabBarController 的应用程序。在几种情况下,我需要在另一个模态视图控制器中呈现模态视图控制器。

一切正常,期待内存警告到达:如果我尝试关闭两个模态视图控制器以返回离开标签栏控制器的位置,这就是我所看到的: 在此处输入图像描述

选定的标签栏控制器视图不会显示在屏幕上。

这些是导致此问题的完整步骤:

  • 用户打开第一个视图控制器(A),它从当前选择的标签栏控制器模态呈现。
  • 用户打开另一个视图控制器 (B),它从视图控制器 A 模态呈现。
  • 内存警告到达,隐藏的视图被破坏。
  • 用户关闭以模态方式关闭的 B(动画)。
  • 用户关闭以模态方式关闭的 A(动画)。
  • 不显示所选控制器的视图。

如果 B 从未显示并且内存警告从 A 到达,我没有问题。

我还尝试从选项卡栏控制器而不是从选定的视图控制器呈现 A,但没有任何改变。

我已经记录了我的标签栏和提要控制器(当前选择的控制器)的主视图事件入口点。结果令人惊讶:

// B is visible on the screen
2012-05-08 15:30:00.563 - Received memory warning.
2012-05-08 15:30:00.563 - viewDidUnload called on tab-bar controller
2012-05-08 15:30:00.564 - viewDidUnload called on feed controller

// user dismisses B controller and A is displayed
2012-05-08 15:30:30.267 - loadView called on feed controller
2012-05-08 15:30:30.268 - viewDidLoad called on feed controller
2012-05-08 15:30:30.274 - loadView called on tab-bar controller
2012-05-08 15:30:30.274 - viewDidLoad called on tab-bar controller

// user dimisses A controller and tab-bar is displayed
2012-05-08 15:30:40.273 - viewWillAppear: called on tab-bar controller

如您所见,标签栏视图(以及提要)在 B 被关闭时恢复。这不是我期望看到的,确实在关闭 A 时应该恢复标签栏视图。

有任何想法吗?谢谢

4

0 回答 0