ad1*_*121 3 nsurl uitextview uitextviewdelegate ios swift
我正在尝试打开我UITextView在应用程序中识别的链接.我正在使用该UITextView delegate方法shouldInteractWithURL来实现这一目标.
我的代码似乎适用于app的app加载; 但是,除了应用程序之外,它仍然在Safari中打开链接.有没有什么办法解决这一问题?
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
println("called")
let webViewController = WebViewController()
webViewController.urlToLoad = URL
if let navigationController = navigationController {
println("navigating")
navigationController.pushViewController(webViewController, animated: true)
return true
}
else {
return false
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这WebViewController只是我制作的一个自定义类,它显示UIWebView整个屏幕.它有一个属性urlToLoad,它将在其中加载的URL UIWebView.
我也分配delegate的UITextView到UIViewController已经在实施这个代理功能.
有谁知道如何让应用程序停止开放野生动物园?
仅当必须在Safari中打开链接时,该shouldInteractWithURL函数true才会返回.如果您自己处理链接,则应返回false.检查下面代码中的更改行.
您还可以使用可选链接而不是if条件来调用 pushViewController
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
let webViewController = WebViewController()
webViewController.urlToLoad = URL
navigationController?.pushViewController(webViewController, animated: true)
return false // Changed line.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |