iPad SplitViewController内存警告导致主视图出现问题

时间:2012-08-23 02:03:57

标签: ios ipad uisplitviewcontroller memory-warning

我有一个具有以下功能的iPad SplitViewController应用程序:

  • 通过在shouldHideViewController委托方法中返回YES,将master(左手)视图控制器隐藏在纵向和横向中
  • 主视图控制器包含标签栏控制器
  • 我利用多个主要详细信息管理器根据用户在主标签栏中所做的选择来管理交换详细视图控制器

我遇到的问题只发生在应用程序收到内存警告之后。当主视图滑入时(通过滑动或点击左侧栏按钮),视图显示为空,即它不包含任何表视图,只包含表视图应该是的半透明背景。如果我点击标签栏中的其他视图,则会正确加载其主视图。如果我然后点击回到问题视图,它现在可以正确显示。

最初我遇到了另一个问题,那就是视图不仅是空的,而且还有全屏尺寸。我能够通过this SO question中提出的解决方案来解决大小问题 - 在解决方案中注意到“显然当收到内存警告时,视图控制器会被释放,所以当它再次出现时,它会得到它它的大小来自它的父视图,它是全屏的。所以你只需要在每次加载时重置帧。“

通过在我的代码中添加断点,我可以验证当我在调用ViewDidLoad事件的内存警告后首次尝试访问主视图时(如果没有内存警告则不会发生这种情况),但是ViewDidAppear &安培;不会调用ViewWillAppear事件。所以应用程序知道它需要在内存警告后重新加载主视图,但由于某种原因它似乎没有显示主视图。

我正在努力弄清楚如何在内存警告后再次正确显示视图。或者,当收到内存警告时,我是否应该采取措施防止主视图被卸载?

更新:我还观察到如果在内存警告时显示主视图,则不会发生此问题。

1 个答案:

答案 0 :(得分:2)

我在Apple技术支持下提出了这个问题。他们的答复如下:

  

对雷达的搜索表明,这是iOS 5.1中的一个已知问题   工程师意识到了这一点。目前似乎没有   解决此问题的方法,而不是确保不这样做   得到记忆警告。

     

如果您愿意,可以在以下位置提交其他错误:   http://bugreporter.apple.com/。另外我建议你试试   这个,看看它是否仍然是iOS 6中的问题。如果是,请提交一个   错误并发送雷达号码,以便我可以跟踪它。

我按照他们的建议做了,并在iOS 6中尝试了。我发现问题没有发生,因此似乎在iOS 6中得到修复.Apple没有为iOS 5.1提供解决方案。