在App中的UITextView中打开链接

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.

我也分配delegateUITextViewUIViewController已经在实施这个代理功能.

有谁知道如何让应用程序停止开放野生动物园?

rak*_*hbs 8

仅当必须在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)