Limite UIWebView a URL específica (Swift)

Estoy tratando de desarrollar una aplicación de iOS que tenga un UIWebView en Swift, pero necesito que solo funcione con un dominio, y cualquier enlace externo que se click ese UIWebView para abrirse en Safari. (EG Todos los enlaces a http://example.com se abrirán dentro de UIWebView, pero se abrirá un enlace a http://twitter.com en Safari).

He encontrado un par de soluciones en línea, pero la única versión de Swift (que se encuentra aquí: los enlaces abiertos de UIWebView en Safari ) funciona para abrir todos los enlaces en Safari, solo quiero que los externos lo hagan.

¿Alguien podría ayudar? Gracias.

Como la solución de @ MattFlier es correcta, pero no comstack con el último comstackdor de Swift. Es importante desenvolver la propiedad URL NSURLRequest para que la solución actualizada sea:

 func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == UIWebViewNavigationType.LinkClicked { if (request.URL!.host! == "example.com"){ return true } else { UIApplication.shanetworkingApplication().openURL(request.URL!) return false } } return true } 

Y sí, para conectar esto, puede controlar + arrastrar su UIWebView al UIViewController que representa la vista y, a continuación, asegúrese de que la function de delegado tenga el mismo nombre que "IBOutlet weak var", como así

Lo que esto parece

También debe asegurarse de que su controller de vista implemente UIWebViewDelegate

 class OfferDetailViewController : UIViewController, UIWebViewDelegate { ... 

Y luego en su método viewDidLoad() también debe asignar el delegado de la siguiente manera:

 override func viewDidLoad() { self.webView.delegate = self; } 

Debo estar mejorando en Swift de lo que pensaba …

Modificando la solución que encontré originalmente (vinculada en la pregunta), se me ocurrió esta alternativa que permite a través de mi URL, pero abre cualquier URL externa en Safari.

 func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == UIWebViewNavigationType.LinkClicked { if (request.URL.host! == "example.com"){ return true } else { UIApplication.shanetworkingApplication().openURL(request.URL) return false } } return true } 

No olvide delegar este código desde UIWebView al controller de vista, y debería funcionar bien (siempre que reemplace example.com con su URL).

¡Vota este comentario, ya que he pasado todo el día buscando a través de tutoriales y foros, y creo que mi solución final es bastante limpia!