2012-01-12 84 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