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