我正在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;
}
然而,当我点击链接时,它会打开一个新页面,而不会调用我的应用程序委派方法。知道出了什么问题吗,或者我可以用其他方式来实现吗?
谢谢。
application:openURL...
委托方法适用于应用程序需要响应其注册的URL处理程序(如Info.plist文件中定义的)时。URL事件将被发送到目标应用程序中的类似方法(例如,用于http链接的Safari)。
编辑:请参阅这篇文章
这个方法不会做你认为它会做的事情。当应用程序被某些URL方案调用时,而不是当应用程序打开URL时,会调用此方法。