Попытка заставить работать щелчок простой ссылки. Я думаю, что понимаю TTNavigator и TTStyledLabel, но не могу заставить его работать.
Код:
@interface SomeVc : UIViewController <TTNavigatorDelegate> {
IBOutlet TTStyledTextLabel *styledTextLabel;
}
@end
@implementation SomeVc
- (void)viewDidLoad {
[super viewDidLoad];
navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeNone;
navigator.delegate = self;
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
styledTextLabel.text = [TTStyledText textWithURLs:someText];
[navigator openURLAction:[TTURLAction actionWithURLPath:@"http://www.cnn.com/"]];
}
- (BOOL)navigator: (TTNavigator*)navigator shouldOpenURL: (NSURL*)URL {
NSLog(@"trying to open %@", [URL absoluteString]);
return NO;
}
@end
То есть внутри viewcontroller, получите навигатор и установите self в качестве его делегата. Когда ссылка открыта, вызывается метод mustOpenURL delgate, где я буду самостоятельно обрабатывать URL-адрес. (Я планирую позволить навигатору обрабатывать больше, но сначала хочу, чтобы этот простой случай работал.)
У меня есть тестовый вызов в конце viewDidLoad, который прекрасно запускает метод делегата.
Проблема: я вижу, что styledTextLabels прекрасно отображается с URL-адресами, но когда я нажимаю на них, ничего не происходит. По какой-то причине они не достигают TTNavigator, и я не могу понять почему. Такое ощущение, что я где-то упускаю простое соединение / строительные леса, но не могу понять.
Как сделать так, чтобы ссылки, вставленные в стиль текста, достигали делегата навигатора? Или как еще мне реализовать этот простой случай с помощью styledtextlabel? (просто хочу получить обратные вызовы для переходов по URL).