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}