SWIFT:不知道如何将选定的值从弹出窗口返回到调用控制器

SWIFT: No idea how to get back the selected value from a popover to the calling controller

我只是对 Swift 弹出框“return”值感到疯狂。我是 Objectiv-C 和 SWIFT 的新手,但我尝试专注于 SWIFT.

我查看了有关 Google 和 Whosebug 的教程,了解如何管理 iOS 弹出窗口,学到了很多东西,但最后的和平我无法做到。太棒了,看看使用 Swift 和 Xcode 6 是多么容易,喜欢它,但我无法弄清楚如何将 selected 值从我的弹出窗口取回我的调用视图控制器。

所以这是我的问题: (旁注:我正在使用 SWIFT 并且全部使用故事板)

我创建了一个带有 select 货币按钮的主 ViewController。此按钮打开一个“select 货币”弹出窗口(通过 CTRL 将其拖动到 CTV-Controller 链接到 CurrencyTableViewController (CTV)。

到目前为止一切顺利。问题是,我不知道如何从 CTV-Table 中取回 selected table 行(货币);-(所以我需要 selected调用 ViewController.

中的货币(table 行)

这是我的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
}
}
[...]

希望有人可以帮助我解决最后一英里丢失的问题,如何将 selected 行值恢复到我的 ViewController。

提前致谢

干杯

约翰

我做了一个简单的例子,希望对你有帮助:

// 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
        }
    }

}

请记住,只需在 ViewController 中声明 currencySelected 函数即可。