2012-01-12 62 views
0

我通常會避開Apple導航模式,尤其是堆疊視圖。我傾向於使用一個根視圖控制器來保存其他視圖控制器/視圖並在它們之間切換,以便在添加其他視圖時移除其中一個。Three20導航無需堆疊

我想要做的是使用類似於UITabBar的導航模式,除非我不想使用UITabBar,因爲它將所有的視圖控制器保存在內存中。

我熟悉Three20導航演示(標籤欄示例),但似乎無法重新創建它的行爲與保持基於URL的導航提前&不會崩潰。我玩過canContainControllers財產沒有成功。

似乎新的Facebook應用程序(> 4.0版)有類似的導航模式,所以我不知道他們是如何設法做到的。

+1

如果需要內存(控制器本身非常輕便),蘋果導航控制器和選項卡控制器不會在內存中保存控制器的視圖,它們將卸載它們。他們會爲您執行一些內存管理工作,您不必這樣做。新的Facebook應用程序拋棄了Three20,因爲它是由不知道蘋果設計模式的人創建的,他試圖強迫設計進入他已經知道的 - 一個很好的學習練習,但沒有更多,它應該永遠不會被釋放。打開不良的代碼不是對他人的好處 – bshirley 2012-01-12 02:18:34

回答

1

我不是三網域映射& TTNavigator的粉絲,但作爲一個框架,three20仍然提供了一些很棒的工具,尤其是TTTableViewController和UI元素。

如果你正在尋找一個不錯的URL映射,儘量傑夫的SOCKit - https://github.com/jverkoey/sockit

Three20: [map from:@"twitter://tweet/(initWithTweetId:)" 
       toViewController:[TweetController class]]; 

SOCKit: [map from:@"twitter://tweet/:id" 
       toViewController:[TweetController class] selector:@selector(initWithTweetId:)]; 

SOCKit確實看起來更可靠和URL對我很好。

+0

不是我正在尋找的東西,但感謝有用的庫 – 2012-01-16 00:34:42