SWIFT:不知道如何将所选值从弹出窗口恢复到调用控制器

Joh*_* B. 3 popover swift ios8

我对Swift Popover的"回归"价值感到疯狂.我是Objectiv-C和SWIFT的新手,但我尝试专注于SWIFT.

我检查了围绕谷歌和StackOverflow的教程,了解如何管理iOS弹出窗口,学到了很多,但最后的和平我无法做到.很棒,所以看看使用Swift和Xcode 6制作它是多么容易,喜欢它,但是我无法弄清楚如何从我的popover中将所选值恢复到我的调用视图控制器.

所以这是我的问题:( SIDENOTE:我正在使用SWIFT并使用storyboard完成所有工作)

我创建了一个ViewController带有按钮的主人来选择货币.此按钮打开"选择货币"弹出窗口(CurrencyTableViewController通过CTRL将其拖动到CTV控制器链接到(CTV).

到现在为止还挺好.问题是,我不知道如何从CTV表中取回选定的表格行(货币);-(所以我需要在调用中选择货币(表格行)ViewController.

这是我的摘录ViewController(称为弹出窗口)

class ViewController: UIViewController, UIPopoverPresentationControllerDelegate 
[...]
// This button is calling the popover
@IBAction func buttonCurrency(sender: AnyObject) {
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let controller = segue.destinationViewController as? CurrencyTableViewController {
controller.popoverPresentationController?.delegate = self
return
}
}
[...]
Run Code Online (Sandbox Code Playgroud)

希望有人能帮我解决那个错过的最后一英里如何将选定的行值恢复回我的ViewController.

提前致谢

干杯

约翰

Pro*_*tto 8

我做了很快的例子,希望它有所帮助:

// This is you popover's class

@objc protocol CurrencySelectedDelegate {
    func currencySelected(currName: String)
}

class MyPopOverController: UIViewController {


    weak var delegate: CurrencySelectedDelegate?


    @IBAction func readyButtonPressed(sender: AnyObject) {

    // Do what you want

    delegate?.currencySelected("Euro/Dollar etc....")

    // close popover
    }
}

// ViewController
class ViewController: UIViewController, CurrencySelectedDelegate {

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "mySegue" { // your identifier here
            let controller = segue.destinationViewController as! MyPopOverController
            controller.delegate = self
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

请记住在ViewController中声明currencySelected函数.