【发布时间】:2011-05-24 02:38:07
【问题描述】:
根据使用旧 iOS 硬件的人的大量请求,我目前正在重构和优化我的应用程序,以便它可以在 iOS 3 上运行。话虽如此,我的 UITabBar 出现了故障,我可以在上面进行复制我测试过的所有 iPhone 3G 设备。
该故障似乎已在 iOS 4 中得到修复,但我想知道在此之前是否有其他人也遇到过此故障,并且已经找到了一个(相对优雅的)解决方法。
问题是你可以在下面看到的;当发生内存警告并释放屏幕外的所有视图时,当我将带有标签栏的视图控制器带回屏幕时,所有应该在其中的 UITabBarItems 都消失了。据我所知,它们根本没有被画出来。即点击标签栏没有效果。在设置断点并检查 UITabBar 及其在内存中的项目后,它们都仍然存在(即没有被释放),只是在控制器 loadView 方法中重新创建 UITabBar 时它们没有被重绘。
我的应用程序与官方 Twitter 应用程序的工作方式相似,因为我实现了自己的 UITabBarController 版本,因此我可以正确控制它与父 UINavigationController 的集成。不过,我将它设置为尽可能接近原始 UITabBarController 类,所有子视图控制器都处理它们各自的 UITabBarItems 并在类的 init 方法中初始化它们。一旦通过访问器方法将子视图控制器传递给我的 TabController 对象,就会访问 tabBarItems 并将其添加到 UITabBar 视图中。
有没有人以前见过这种行为并知道我可以解决它的方法?我希望有一个非常简单的解决方案,因为它已经在 iOS 4 中运行,所以我不想把它弄得太糟糕。
非常感谢!
【问题讨论】:
标签: cocoa-touch ios uikit uitabbar uitabbaritem