Я следую этому руководству и объявляю следующие сопоставления в своем делегате приложения:
[map from:@"x://profile/(initWithId:)/(name:)" toViewController:[ProfileViewController class]];
[map from:@"*" toViewController:[TTWebController class]];
В ProfileViewController.m
я реализую селектор - (id)initWithId:(int)anIdentifier name:(NSString *)name
для обработки такого сопоставления. Я предполагаю, что открытие таких URL-адресов, как x://profile/1/John Doe
, вызовет [[ProfileViewController alloc] initWithId:1 name:@"John Doe"]
, однако, похоже, это не так. Класс TTWebController
по умолчанию вызывается каждый раз, когда я открываю указанный URL-адрес.
Использование одного параметра, то есть что-то вроде x://profile/(initWithId:)
, делает правильную вещь, то есть вызывает [[ProfileViewController alloc] initWithId:1]
.
Я что-то пропустил здесь? Как использовать многопараметрическое отображение с Three20 и TTURLMap?