toViewController,toSharedViewController和toModalViewController之间的差异

时间:2011-07-10 12:55:52

标签: iphone three20

toViewController一起使用时,toSharedViewControllertoModalViewControllerTTURLMap之间有何区别?

TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://tabBar" toSharedViewController:[TabBarController class]];
[map from:@"tt://order?waitress=(initWithWaitress:)"
   toModalViewController:[ContentController class]];

1 个答案:

答案 0 :(得分:6)

使用(void)from:(NSString*)URL toViewController:(id)target将始终从头开始重新创建UIViewController,并且不会尝试重用现有的视图控制器。

例如,如果你两次调用TTOpenURL(@"tt://details/view/1),它将创建两次视图控制器。

另一方面,如果您使用(void)from:(NSString*)URL toSharedViewController:(id)targetTTNaviagtor将以共享模式创建控制器并重复使用它们。这对标签栏视图中的菜单很有用。

所以如果你为使用toSharedViewController创建的url调用TTOpenURL(@"tt://menu/1)两次,它将重用现有的视图控制器(如果控制器在TTNavigator堆栈中并且没有被内存警告释放)

最后一个选项,(void)from:(NSString*)URL toModalViewController:(id)target将显示视图控制器,而不使用现有的UINavigationBar。如果您需要提供“发送电子邮件”视图或已有UINavigationBar的内容,这将非常有用。