2010-11-18 3 views
4

Dans mon application en appuyant sur un bouton que je veux ouvrir UIWebView en plein écran, le UIWebView va charger une page HTML qui tiendra un bouton qui fermera le UIWebView et retourner à app.Comment fermer la page dans UIWebView et revenir à l'application

Le problème est que je ne parviens pas à faire fermer le bouton de la page et revenir à l'application. J'ai essayé parent.history.back() et history.back et plusieurs versions de self.close(), mais rien ne semble fonctionner (BTW fonctionner dans le navigateur, mais pas de UIWebView.

une idée? merci -Z

Répondre

10
[UIWebViewDelegate][1] has your answer 

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request    
            navigationType:(UIWebViewNavigationType)navigationType { 
     if (request.URL == "SOME URL TO CLOSE WINDOW") { 
      //do close window magic here!! 
      [self stopLoading]; 
      return NO; 
     } 
     return YES; 
    } 
-(void)stopLoading{ 
    [_webView removeFromSuperview]; 
} 

    [1]: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html 
+0

Cela fonctionne, merci l'homme – zohar

0

mis à jour pour Swift 3:

Si vous voulez fermer la page de UIWebView et revenir à l'application, utilisez ci-dessous de code:

import UIKit 

class ViewController: UIViewController, UIWebViewDelegate{ 

    @IBOutlet weak var mWebView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     mWebView.delegate = self 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     self.loadWebView() 
    } 

    func loadWebView() { 
     mWebView.loadRequest(URLRequest(url: URL(string: "https://stackoverflow.com/")!)) 
    } 

    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
     print("request: \(request.description)") 
     if request.description == "https://stackoverflow.com/users/login"{ 
      //do close window magic here!! 
      print("url matches...") 
      stopLoading() 
      return false 
     } 
     return true 
    } 

    func stopLoading() { 
     mWebView.removeFromSuperview() 
     self.moveToVC() 
    } 

    func moveToVC() { 
     print("Write code where you want to go in app") 
     // Note: [you use push or present here] 
     let vc = 
      self.storyboard?.instantiateViewController(withIdentifier: 
      "storyboardID") as! YourViewControllerName 
     self.navigationController?.pushViewController(vc, animated: true) 
    } 
} 
Questions connexes