任何人都可以提出一篇文章或者一個例子,說明如何在Facebook,IMDB和BrightKite應用程序中看到如何使用UINavigationController創建「無限鑽取」?用UINavigationController「無限鑽取」
回答
從來沒有這樣做......我會通過保持一個包含前一個視圖內容的輕量級對象(可能只是一個URL?)來處理這個問題。而不是僅僅將一個新的UIViewController推送到UINavigationController,您將彈出當前的一個,而不使用動畫,然後推送新的視圖。不過,我不認爲這會妥善處理好動畫。
想到的另一種方法是操縱UINavigationController的viewControllers數組。推入新視圖後,只需從數組中刪除前一視圖。這樣UINavigationController堆棧將只有1或2個元素深。處理後退按鈕會創建正確的視圖,將其插入到viewControllers數組中,然後彈出當前視圖。您的狀態將由輕量級對象堆棧管理,而不是重量級視圖控制器。
-Dan
我目前正在研究使用Three20的TTNavigator作爲解決方案,因爲它似乎支持此功能...雖然文檔很糟糕,所以我還不確定。 – 2010-05-07 22:24:09
的UINavigationController
被設計成可以使用這種方式。如果內存成爲問題,那麼導航控制器將釋放隱藏的視圖,並在需要時間導航回棧中時重新加載它們。由於這個原因,Apple建議您從NIB加載您的UIView
。
向下滾動到第4項,「配置您的根視圖控制器的看法。」
kubi,謝謝你的提示。你試過這個嗎?你可以把日誌放在viewDidUnload中(或者不叫這個?)。 -dan – 2010-05-07 20:28:27
根據我的實驗,這是不正確的。 UINavigationController似乎不會自動從堆棧中刪除任何視圖,除非您正在導航回去。 – 2010-05-07 22:23:01
@丹尼爾實際上沒有,但我也沒有這種方式使用NavControllers時的內存問題,所以我認爲一切都像描述的文件一樣工作。請讓我現在如果你發現不同。 – kubi 2010-05-08 04:05:10
- 1. UINavigationController和「無限」鑽取
- 2. UINavigationController向下鑽取表視圖
- 3. 核心數據無限向下鑽取
- 4. 使用按鈕鑽取/向下鑽取
- 5. UINavigationController權限使用
- 6. apache鑽取的限制是什麼?
- 7. 用Ext Cahrts鑽取?
- 8. Highchart不規則樣條與鑽取 - 無法獲取向下鑽取功能
- 9. 如何在iPhone鑽取應用程序中處理無限量的TableViews
- 10. Highcharts鑽取 - 使用setData圖表時不會保持鑽取
- 11. 多級鑽取
- 12. Cognos鑽取
- 13. 無法使用Apache 1.2鑽
- 14. 微觀策略中向下鑽取,鑽取和鑽取的區別
- 15. 無法出口Highchart.js向下鑽取後
- 16. 無法鑽取隨着空值
- 17. 使用BIRT鑽取DashBoards
- 18. 用於無限導航的UINavigationController(嵌套文件夾)
- 19. SSRS和JAVA鑽取
- 20. iPad鑽取菜單
- 21. 半屏鑽取UITableView
- 22. Highcharts,MYSQL和鑽取
- 23. PowerPivot鑽取格式
- 24. UINavigationController的子界限/框架?
- 25. 獲取對UINavigationController的引用
- 26. 鑽取和鑽取報告有什麼區別?
- 27. 無需使用代碼即可向下鑽取
- 28. 無法從UINavigationController的
- 29. UINavigationController - 無法啓動
- 30. Eclipse BIRT超鏈接鑽取無法正確獲取url
你能更具體地說明你喜歡Facebook,IMDB和BrightKite嗎?我在IMDB網站上,並沒有看到你指的是什麼。 – 2010-05-07 16:49:13
這些iPhone應用程序中的每個應用程序都至少有一個導航控制器,可讓您通過內容無限地向下瀏覽。例如:在IMDB中,您可以搜索演員,打開他們的視圖,打開他們的電影,然後打開不同的演員,然後打開不同的電影等等。該應用顯然會以某種方式跟蹤歷史記錄,並自動彈出超出觀看範圍某個點......否則會超出監視器的內存限制。 – 2010-05-07 16:54:08