Ios 模态视图控制器的UITabBarController内存问题

Ios 模态视图控制器的UITabBarController内存问题,ios,xcode,memory-management,uitabbarcontroller,modalviewcontroller,Ios,Xcode,Memory Management,Uitabbarcontroller,Modalviewcontroller,我的ios应用程序是一个基于UITabBarController的应用程序。有几种情况下,我需要在另一个模态视图控制器中显示一个模态视图控制器 一切正常,内存警告到达时除外:如果我试图关闭双模式视图控制器以返回到我离开选项卡栏控制器的位置,我看到的就是: 所选选项卡栏控制器视图不会显示在屏幕上 以下是导致此问题的完整步骤: 用户打开第一个视图控制器A,该控制器通过当前选定的选项卡栏控制器以模式显示。 用户打开另一个视图控制器B,它是从视图控制器A以模式显示的。 内存警告到达,隐藏的视图被销毁。

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

一切正常,内存警告到达时除外:如果我试图关闭双模式视图控制器以返回到我离开选项卡栏控制器的位置,我看到的就是:

所选选项卡栏控制器视图不会显示在屏幕上

以下是导致此问题的完整步骤:

用户打开第一个视图控制器A,该控制器通过当前选定的选项卡栏控制器以模式显示。 用户打开另一个视图控制器B,它是从视图控制器A以模式显示的。 内存警告到达,隐藏的视图被销毁。 用户关闭B,该B以模态动画方式被解除。 用户关闭一个以模态动画方式解除的。 所选控制器的视图不显示。 如果B从未显示并且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时应该恢复选项卡栏视图

有什么想法吗?
谢谢

您的viewcontroller视图是如何创建的?在XIB文件中?我使用的所有视图控制器都是以编程方式创建的。没有nib文件。有嫌疑吗?基本上,当视图控制器收到内存警告时,它会破坏其视图并调用viewDidUnload。之后,当视图控制器再次激活时,它应该再次通过loadView和viewDidLoad。试着研究一下这些方法,看看是否有可疑之处。另外,这个问题提供了一些我并不推荐的解决方法,但你可以将其作为最后手段::谢谢@adig。我遵循了你的建议,并跟踪了我的应用程序行为,正如你在上面看到的。