Различия между toViewController, toSharedViewController и toModalViewController - PullRequest
1 голос
/ 10 июля 2011

Каковы различия между 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]];

1 Ответ

6 голосов
/ 10 июля 2011

Использование (void)from:(NSString*)URL toViewController:(id)target всегда будет воссоздавать UIViewController с нуля и не будет пытаться повторно использовать существующий контроллер представления.

Так, например, если вы вызовете TTOpenURL(@"tt://details/view/1) дважды, он создаст контроллер представления дважды.

С другой стороны, если вы используете (void)from:(NSString*)URL toSharedViewController:(id)target, TTNaviagtor создаст контроллеры в режиме совместного использования и повторно их использует. Это хорошо для меню в представлениях панели вкладок.

поэтому, если вы дважды наберете TTOpenURL(@"tt://menu/1) для URL, созданного с помощью toSharedViewController, он будет повторно использовать существующий контроллер представления (если контроллер находится в стеке TTNavigator и не был освобожден из-за предупреждения памяти)

последний параметр, (void)from:(NSString*)URL toModalViewController:(id)target отобразит контроллер вида, нажав его без использования существующего UINavigationBar. Это полезно, если вам нужно представить представление «Отправить по электронной почте» или что-то, что уже имеет UINavigationBar.

...