2016-07-08 3 views
0

Мой веб-просмотр не отображается. (Только пустая белая страница) У меня есть TabBarController и два ViewControllers. Один из них, содержащий веб-просмотр.iOS Swift Webview не отображается

Мой код:

import Foundation 
import UIKit 

class HomeViewController: UIViewController, UIWebViewDelegate { 

    @IBOutlet var webView: UIWebView! 


    var urlpath: String = "http://www.google.de" 

    func loadAddressURL(){ 
     let requesturl = NSURL(string: urlpath) 
     let request = NSURLRequest(URL: requesturl!) 
     webView.loadRequest(request) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     loadAddressURL() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

Что здесь не так?

+0

Вы пробовали https? – Putz1103

+0

да, у меня есть и та же проблема – simplesystems

ответ

0

Первая двойная проверка зрения правильно раскладывается. Запустите приложение и навигацию к экрану. Отладка> Просмотр отладки> Иерархия просмотра. Щелкните правой кнопкой мыши по экрану и распечатайте представление, чтобы убедиться, что кадр правильный. Если это нормально, то реализуйте методы делегирования UIWebView, в частности webViewDidFinishLoad. Это должно дать вам знать, была ли проблема загрузки веб-страницы.

0

У вас есть ограничения, установленные в IB? Вы можете попытаться установить их программно, чтобы узнать, помогает ли это.

if let wv = myWebView { 
    wv.translatesAutoresizingMaskIntoConstraints = false 
    view.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
     "H:|[webView]|", options: [], metrics: nil, views: ["webView":wv])) 
    view.addConstraints(
     NSLayoutConstraint.constraintsWithVisualFormat(
     "V:|[webView]|", options: [], metrics: nil, views: ["webView":wv])) 
} 
0

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

В viewDidLoad добавить следующее:

self.webView.delegate = self 

Тогда вы должны соответствовать UIWebViewDelegate (которые вы уже делаете, но я предлагаю вам расширить контроллер представления вместо):

extension HomeViewController: UIWebViewDelegate { 
    func webViewDidStartLoad(_ webView: UIWebView) { 
     print("Loading") 
    } 

    func webViewDidFinishLoad(_ webView: UIWebView) { 
     print("Finished") 
    } 
} 

И последняя но не в последнюю очередь, вам нужно разрешить вашему приложению загружать внешние URL-адреса, добавив транспортную безопасность, я предлагаю вам проверить это post.

Обратите внимание, что я использую Swift 3, вам может потребоваться внести небольшие изменения.

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