Откройте ссылку, используя кнопку и текстовое поле - PullRequest
0 голосов
/ 02 мая 2018

Можно ли открыть ссылку, используя кнопку и текстовое поле, в котором ссылка указана на другой странице в самом приложении, а не в Safari?

Я использую Swift 4

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вы должны открыть веб-просмотр в контроллере представления назначения и отправить строку URL-адреса из первого контроллера просмотра в назначение, как показано ниже:

class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!

    @IBAction func action(_ sender: Any) {

        if let mainVC = storyboard?.instantiateViewController(withIdentifier: "second") as? DestinationViewController {
            mainVC.urlStr = textField.text
            self.navigationController?.pushViewController(mainVC, animated: true)

        }
    }
}

Контроллер пункта назначения:

class DestinationViewController: UIViewController {
    var urlStr: String?

    override func viewDidLoad() {
        super.viewDidLoad()
        let webView = UIWebView(frame: self.view.frame)
        self.view.addSubview(webView)

        if let urlString = urlStr, let url = URL(string: urlString) {
            webView.loadRequest(URLRequest(url: url))
        }
    }
}
0 голосов
/ 02 мая 2018

Просто используйте WKWebView, чтобы открыть ссылку на действие кнопки, используя это Импортировать WebKit импорт WebKit

В вашем FirstViewController передайте URL, нажимая на SecondViewController

FirstViewController

if let secondVC = (UIStoryboard.init(name: "Main", bundle: nil)).instantiateViewController(withIdentifier: "secondVCID") {
    secondVC.url = textFiled.text // OR send the URL you want to send
    self.navigationController?.pushViewController(secondVC, animated: true)
}

В SecondViewController

Import Webkit

объявить делегата

class SecondViewController: UIViewController,WKNavigationDelegate  {

объявите URL-адрес var, чтобы вы могли получить к нему доступ n FirstVC

var url: String?
@IBOutlet weak var webView: WKWebView!


In ViewDidLoad Of SecondVC

let webUrl = NSURL(string: url!)
let request = NSURLRequest(URL: webUrl)

// load request in webview.
webView.navigationDelegate = self
webView.loadRequest(request)

и реализовать все делегированные методы WKWebview

//MARK:- WKNavigationDelegate

func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    print(error.localizedDescription)
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print("Strat to load")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    print("finish to load")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...