我正在UITextView中实现一个链接,它将推送导航控制器上的一个视图控制器。
我正在尝试使用以下方法:
directionTextLabel.text = [directionTextLabel.text stringByAppendingString:[[NSString alloc] initWithFormat:@" %@", siteURL]];
directionTextLabel.dataDetectorTypes = UIDataDetectorTypeLink;
这使我的链接可以点击。然后在我的申请代表中,我有:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"URL detected.");
return 1;
}
但是,当我点击链接时,它会打开一个新页面,而不会调用我的app delegate方法。 知道出了什么问题,或者我可以实现的其他方式吗?
谢谢。
答案 0 :(得分:1)
application:openURL...
委托方法适用于您的应用程序需要响应其注册的URL处理程序(如Info.plist文件中所定义)的情况。 URL事件将被发送到目标应用程序中的类似方法(例如,用于http链接的Safari)。
编辑:见this post
答案 1 :(得分:1)
此方法不符合您的想法。当您的应用程序被某些URL方案调用时,此方法将被调用,而不是在您的应用程序打开URL时调用。