Во-первых, вам нужно сопоставить URL-адреса с контроллерами. Обычно вы делаете это в AppDelegate, так как вы хотите настроить карту URL перед вызовом URL для отображения представления.
- Создание TTNavigator
- Сопоставить URL-адреса с контроллерами через TTURLMap
- Всегда начинайте с подстановочного URL, т.е. * и сопоставьте его с контроллером представления по умолчанию, таким как TTWebController (контроллер представления веб-браузера)
- Обычно существует 2 типа URL: 1) URL без параметров и 2) URL с параметрами. В первом случае при вызове URL будет вызван initWithNibName: bundle: «constructor» контроллера отображаемого представления. Для последнего вы можете указать, какой метод init вызывать в TTURLMap. Смотрите пример ниже.
- Фактически открывает URL через openURLAction: метод.
Вот код.
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application {
TTNavigator* navigator = [TTNavigator navigator];
TTURLMap* map = navigator.URLMap;
// This is the default map. * = wildcard, any URL not registered will be
// routed to the TTWebController object at runtime.
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://catalog" toViewController:[CatalogController class]];
[map from:@"tt://user/(initWithId:)"
toViewController:[MyUserViewController class]];
[map from:@"tt://user/(initWithId:)"
toViewController:[MyUserViewController class]];
if (![navigator restoreViewControllers]) {
[navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://catalog"]];
}
}
// ...
@end
Во-вторых, подкласс TTViewController
@implementation MyUserViewController
- (id) initWithId:(NSNumber *)index {
if (self = [super initWithNibName:nibName bundle:nil]) {
// Do your initialization here.
// Get the index from a singleton data manager containing the "model."
}
return self;
}
@end
В-третьих, перейдите по URL-адресу из любой точки приложения.
// Navigate to the URL.
[[TTNavigator navigator] openURLAction:[TTURLAction actionWithURLPath:@"tt://user/1"]];