与toViewController
一起使用时,toSharedViewController
,toModalViewController
和TTURLMap
之间有何区别?
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]];
答案 0 :(得分:6)
使用(void)from:(NSString*)URL toViewController:(id)target
将始终从头开始重新创建UIViewController,并且不会尝试重用现有的视图控制器。
例如,如果你两次调用TTOpenURL(@"tt://details/view/1)
,它将创建两次视图控制器。
另一方面,如果您使用(void)from:(NSString*)URL toSharedViewController:(id)target
,TTNaviagtor
将以共享模式创建控制器并重复使用它们。这对标签栏视图中的菜单很有用。
所以如果你为使用toSharedViewController创建的url调用TTOpenURL(@"tt://menu/1)
两次,它将重用现有的视图控制器(如果控制器在TTNavigator堆栈中并且没有被内存警告释放)
最后一个选项,(void)from:(NSString*)URL toModalViewController:(id)target
将显示视图控制器,而不使用现有的UINavigationBar
。如果您需要提供“发送电子邮件”视图或已有UINavigationBar的内容,这将非常有用。