gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:35 24 4
gpt4 key购买 nike

我对 Swift Popover 的“返回”值非常着迷。我是 Objectiv-C 和 SWIFT 的新手,但我尝试专注于 SWIFT。

我查看了有关如何管理 iOS 弹出窗口的有关 Google 和 StackOverflow 的教程,学到了很多东西,但我无法做到最后的平静。这太棒了,所以看看使用 Swift 和 Xcode 6 是多么容易,喜欢它,但我不知道如何将选定的值从我的弹出窗口取回我的调用 View Controller 。

所以这是我的问题:(旁注:我正在使用 SWIFT 并使用 Storyboard完成所有操作)

我创建了一个带有选择货币按钮的主 ViewController。此按钮打开一个“选择货币”弹出窗口(链接到 CurrencyTableViewController (CTV),方法是按住 CTRL 并将其拖动到 CTV-Controller。

到目前为止一切顺利。问题是,我不知道如何从 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
}
}
[...]

希望有人可以帮助我解决最后一英里的问题,如何将选定的行值返回到我的 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 函数即可。

关于SWIFT:不知道如何将选定的值从弹出窗口返回到调用 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com