Iphone toViewController、toSharedViewController和toModalViewController之间的差异

Iphone toViewController、toSharedViewController和toModalViewController之间的差异,iphone,three20,Iphone,Three20,与TTURLMap一起使用时,toViewController与toModalViewController之间有什么区别 TTURLMap* map = navigator.URLMap; [map from:@"*" toViewController:[TTWebController class]]; [map from:@"tt://tabBar" toSharedViewController:[TabBarController class]]; [map from:@"tt://order

TTURLMap
一起使用时,
toViewController
toModalViewController
之间有什么区别

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]];
使用
(void)from:(NSString*)URL到ViewController:(id)target将始终从头开始重新创建UIViewController,并且不会尝试重用现有的视图控制器

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

另一方面,如果将
(void)from:(NSString*)URL用于SharedViewController:(id)target
,则
TTNaviagtor
将在共享模式下创建控制器并重用它们。这对选项卡栏视图中的菜单很有好处

因此,如果对使用toSharedViewController创建的url调用两次
TTOpenURL(@“tt://menu/1)
,它将重用现有的视图控制器(如果该控制器位于TTNavigator堆栈中,并且未通过内存警告释放)

最后一个选项,
(void)from:(NSString*)URL toModalViewController:(id)target
将通过在不使用现有的
UINavigationBar的情况下按下视图控制器来显示视图控制器。如果您需要显示“发送电子邮件”视图,或者已经有UINavigationBar的视图,这将非常有用

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

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

另一方面,如果将
(void)from:(NSString*)URL用于SharedViewController:(id)target
,则
TTNaviagtor
将在共享模式下创建控制器并重用它们。这对选项卡栏视图中的菜单很有好处

因此,如果对使用toSharedViewController创建的url调用两次
TTOpenURL(@“tt://menu/1)
,它将重用现有的视图控制器(如果该控制器位于TTNavigator堆栈中,并且未通过内存警告释放)

最后一个选项,
(void)from:(NSString*)URL toModalViewController:(id)target
将通过在不使用现有的
UINavigationBar的情况下按下视图控制器来显示视图控制器。如果您需要显示“发送电子邮件”视图,或者已经有UINavigationBar的视图,这将非常有用