IOS: Navigation Controller mit Webview

Posted . Visible to the public.

Browser ViewController
Zuerst legt man einen eigenen ViewController für die Browser View an. Dieser ruft lediglich die Website auf und wird dafür genutzt um die Navigation Bar zu customizen und um auf Websiten mit goBack() zu navigieren. Die Webview kann als Fullscreen View hinzugefügt werden.

class BrowserViewController: UIViewController {
init(url: URL, title: String) {
        self.url = url
        webView = UIWebView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
        webView.loadRequest(URLRequest(url: url))
        super.init(nibName: nil, bundle: nil)
        self.navigationItem.titleView = UIUtils.navigationBarTitleViewForTitle(title)
        viewDidLoad()
    }
}

Navigation Controller
In der Methode, die aufgerufen wird wenn sich der Browser öffnen soll, muss zuerst ein Objekt der BrowserViewController Klasse instantiiert werden. Anschließend erstellt man einen Navigation Controller, dessen Root View Controller der Browser ViewController ist. Zum Schluss muss der Navigation Controller auf dem View Controller, der die Methode aufruft, präsentiert werden.

    func openBrowser(withURL url: URL, onViewController viewController: UIViewController, withTitle title: String) {
        let browserViewController = BrowserViewController(url: url, title: title)
        let navigationController = UINavigationController(rootViewController: browserViewController)
        viewController.present(navigationController, animated: true)
    }
Marlene
Last edit
Marlene
Posted by Marlene to Appdafuer (2018-09-19 10:45)