在使用舊iOS硬件的人們提出的大量請求中,我目前正在重構和優化我的應用程序,以便它可以在iOS 3上運行。這就是說,我的UITabBar出現了一個小故障,我可以在我測試過的所有iPhone 3G設備上進行復制。iOS 3 - 發生內存警告後,UITabBarItem從UITabBar中消失
該故障似乎已在iOS 4中得到修復,但我想知道是否在此之前,其他人也出現過這種故障,並想出了一個相對優雅的解決方法。
問題是你可以在下面看到;當發生內存警告並且所有的離屏視圖都被釋放時,當我將一個帶有標籤欄的視圖控制器帶回到屏幕上時,應該在其中的所有UITabBarItem都將消失。據我所知,他們根本沒有被吸引;即點擊標籤欄不起作用。在設置斷點並檢查UITabBar及其內存中的項目之後,它們仍然在那裏(即未釋放),只是在控制器loadView方法中重新創建UITabBar時,它們不會重新繪製。
我的應用程序與官方Twitter應用程序類似,因爲我實現了自己的UITabBarController版本,因此我可以正確控制它與父級UINavigationController的集成。儘管我儘可能地將其設置爲與最初的UITabBarController類相似,但所有子視圖控制器都處理各自的UITabBarItems並在類的init方法中初始化它們。一旦子視圖控制器通過訪問器方法傳遞給我的TabController對象,就可以訪問tabBarItems並將其添加到UITabBar視圖。
有沒有人見過這種行爲之前,知道我可以修復它的方式?我希望有一個非常簡單的修復方法,因爲它已經可以在iOS 4中運行了,所以我不想把它弄得太糟糕。
非常感謝!
聽起來不錯!當然,我對你的應用更感興趣,現在我看到了截圖。 :)鏈接可用? – 2011-10-11 22:09:19
哈哈謝謝!啊,有一個鏈接。但不幸的是,我被要求下載應用程序。^_ ^; (http://www.tim-oliver.com/2011/07/21/on-ipokedex-getting-pulled/) 爲了記錄,這是我最後一次使我的應用程序與iOS 3兼容。這是奇怪的怪癖,使它成爲一個瘋狂的噩夢... – TiM 2012-02-04 06:24:26
iOS 3?是的,拜拜。讓我們聽聽Xcode 4.2,ARC和Storyboards - mwahaaa。 :) – 2012-02-20 21:50:08