gpt4 book ai didi

swift - 将值传递给前一个 viewController,委托(delegate)方法未被调用

转载 作者:可可西里 更新时间:2023-11-01 02:06:44 25 4
gpt4 key购买 nike

我正在从一个函数中获取 schoolAddress 的值。 View 消失后,我传递了 schoolAddress 的值。我试图将学校地址的值从 GeoDetailsVC 传递给 EditChildPoofileVC ..提前谢谢

protocol DataEnteredDelegate : class {
func setLocations(info: String)
}

class GeoDetailsVC: UIViewController{
weak var delegate: DataEnteredDelegate? = nil
var schoolAddress: String = ""

override func viewDidDisappear(animated: Bool) {
self.delegate?.setLocations(self.schoolAddress)
print(schoolAddress)
}
}

class EditChildProfileVC: UIViewController, DataEnteredDelegate {

var locationSentFromGeoDetailsVC:String?
@IBOutlet weak var schoolAddressTF: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
print("EditChildProfileVC")
self.title = ChildName
}

func setLocations(info: String) {
NSOperationQueue.mainQueue().addOperationWithBlock {
self.locationSentFromGeoDetailsVC = info
self.schoolAddressTF.text = self.locationSentFromGeoDetailsVC
}
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue == "GeoDetailsSegue" {
let vc = segue.destinationViewController as! GeoDetailsVC
vc.delegate = self
}
}
}

最佳答案

尝试将 segue == "GeoDetailsS​​egue" 更改为 segue.identifier == "GeoDetailsS​​egue",如下所示:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
guard let segueIdentifier = segue.identifier else { return }
if segueIdentifier == "GeoDetailsSegue",
let vc = segue.destinationViewController as? GeoDetailsVC {
vc.delegate = self
}
}

关于swift - 将值传递给前一个 viewController,委托(delegate)方法未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410031/

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