xcode 6 - swift - 将字符串传递给popover segue

时间:2015-06-05 05:56:20

标签: swift webview segue popover

我的项目有两个视图控制器。初始视图控制器有三个按钮(viewController1)。第二个视图控制器有一个webview(viewController2)。我从viewController1到viewController2设置了一个作为popover segue的礼物。我希望每个按钮在发生segue时打开webview中的特定网页(当我点击一个按钮时,webview会在一个网站上滑动。如果我点击一个不同的按钮,webview会在不同的预定网站上滑动。)

如何将预定网站传递给viewController2?

到目前为止我的代码:

 // viewController1
 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
     if (segue.identifier == "webViewPopover") {
         let webviewVC:WebviewViewController = segue.destinationViewController as WebviewViewController
         webviewVC.receivedURL = "http://www.apple.com" //test string
        }
    }


// viewController2
var receivedURL:String!

    @IBOutlet var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let myURL = NSURL (string: receivedURL)
        let request = NSURLRequest(URL: myURL!)
        webView.loadRequest(request)
    }

1 个答案:

答案 0 :(得分:0)

就像你做的那样。

如果你问,如何从不同的按钮派生不同的字符串,最简单的方法是让不同的处理程序设置一个局部变量,然后像你一样代理到下一个VC。这是最直接的方式。

我使用过的一种更高级的技术(现在可能太多了),是将一个闭包包装在一个对象中,将其作为发送者传递,并且有一个不可知的prepareForSegue检查发送者并调度该方法。但是,根据您的需求,使用Apple的API - 您正在做的事情,只需在按钮点击中提供一个缓存的本地字符串变量。