2016-06-23 2 views
1

Итак, у меня есть веб-представление, отображающее страницу, и вы хотите открыть какие-либо ссылки в новом контроллере представления, содержащем веб-представление (например, Twitter и Facebook).Swift - просмотр ссылок на веб-сайт modally

Я работал, как получить URL в ссылку щелкнул:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
    let youClicked = request.URL! 
    print(youClicked) 
    return true 
} 

Но не удалось выяснить, как я могу передать это значение в веб-просмотра на другой странице и представить эту точку зрения контроллер в качестве поп-версии.

Любые идеи?

+0

'пусть SVC = SFSafariViewController (URL: youClicked) self.presentViewController (svc, animated: true, completion: noil) ' –

ответ

2

Существует не компонент из коробки, который может удовлетворить ваши потребности. Вместо этого вы должны создать свой собственный компонент:

  1. Создать новый UIViewController и место WKWebView в нем (Может быть заархивированы с помощью Interface Builder или код - я обычно предпочитаю Interface Builder). Кроме того, создать выпускное отверстие (например, под названием "Webview") для WKWebView

  2. Создать контроллер - установить URL и представить его // Create the controller let controller = storyboard.instantiateViewControllerWithIdentifier("MyCustomWebViewController") //start loading the URL controller.webView.loadRequest(request) // present it presentViewController(viewController, animated: true, completion: nil)

+0

Спасибо, я буду работать от этого. – dwinnbrown

4

Взгляните на SFSafariViewController на Apple Developer Documentation

В целях реализации решения, вы должны импортировать SafariServices и после этого ...

  1. Объявите Safari View Controller

    адресат: NSURL = NSURL (строка: "http://desappstre.com")!

    пусть сафари: SFSafariViewController = SFSafariViewController (URL-адрес: назначения)

  2. Segue из текущего контроллера представления к контроллеру вида сафари объявленного на шаге 1

    self.presentViewController (сафари, анимированный: правда, завершение : ноль)

Если вам нужен контроль над HTTP событий, которые вы можете использовать SFSafariViewControllerDelegate в контроллере вида назначения.

+1

Это скорее комментарий, чем ответ. Не могли бы вы рассказать о том, как использование этого контроллера представления отвечает на вопрос? – JAL

+0

Вы правы @JAL, я постараюсь разработать небольшую * детскую площадку * об этом. THX – Adolfo

Смежные вопросы