iOSでUIWebView内のリンクをタップしたらNavigationで画面遷移させる実験 - ぴよログ
↑こんなん書いたけどこのときはObjective-Cで書いてたのでSwiftで書き換えてみました。オプショナルが全然慣れませんがこれから勉強します。
1import UIKit
2import TKRSegueOptions
3
4class ViewController: UIViewController, UIWebViewDelegate {
5
6 let HOST = "http://localhost:4000"
7
8 @IBOutlet weak var webView: UIWebView!
9
10 override func viewDidLoad() {
11 super.viewDidLoad()
12 // Do any additional setup after loading the view, typically from a nib.
13
14 webView.delegate = self
15 var urlstring = HOST + "/"
16 if let path = self.segueOptions?["path"] as? String {
17 urlstring = HOST + path
18 }
19 let url = NSURL(string: urlstring)
20 let req = NSURLRequest(URL: url!)
21 webView.loadRequest(req)
22 }
23
24 override func didReceiveMemoryWarning() {
25 super.didReceiveMemoryWarning()
26 // Dispose of any resources that can be recreated.
27 }
28
29 func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
30
31 if(request.URL?.scheme == "callback"){
32 println(request.URL?.absoluteString)
33 let urlstring = request.URL?.absoluteString
34 let href = urlstring?.substringFromIndex(advance(urlstring!.startIndex, 11))
35 performSegueWithIdentifier("next", options: ["path": href!])
36 }
37 return true
38 }
39}
