gpt4 book ai didi

swift - 完成处理程序后执行Segue

转载 作者:行者123 更新时间:2023-11-30 10:20:29 24 4
gpt4 key购买 nike

下面的答案

我遇到一个小问题,你可以帮助我解决。

我正在开发的应用程序允许您根据您的位置请求内容。

第一个 ViewController 是一种获取您的位置/指定位置 + 一些其他信息来定位特定答案的表单。

我需要执行一个 segue 将“问题”变量传递到我的第二个 ViewController,在其中我使用基于问题详细信息的查询加载“答案”。

给我带来麻烦的是,每当问题被地理定位时,我都无法使用prepareForSegue检索信息,因为它不会等待geoPoint被创建(完成)。第二个 Controller 显示我的纬度和经度为零。

我看到我可以使用“perfomSegueWithIdentifier”调用“prepareForSegue”方法,并在我的第二个 View Controller 中检索信息,但它执行两次segue...如何仅在我准备好但使用我需要保留prepareForSegue数据参数吗?

有没有一种方法可以使用performSegue将变量从一个 Controller 传递到另一个 Controller ?任何帮助都会很棒。

此外,虽然我认为该代码与我的问题无关,但这是我使用的代码。

geoPointing方法

@IBAction func doPostQuestion(sender: UIButton) {

var thereQ:PFObject = PFObject(className: "tquestion")

if(somewhereLabel.text == "my location"){
println("Location is geolocalized")
PFGeoPoint.geoPointForCurrentLocationInBackground {
(geoPoint: PFGeoPoint!, error: NSError!) -> Void in
if error == nil {
self.geoLati = geoPoint.latitude as Double
self.geoLong = geoPoint.longitude as Double
self.performSegueWithIdentifier("goto_results", sender:self) // call prepareForSegue when ready but implies to have a segue done on click... (performed twiced)
}
}

}
self.navigationController?.popToRootViewControllerAnimated(true)
}

准备Segue

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if(segue.identifier == "goto_results"){

// Get Label
let theDestination = (segue.destinationViewController as displayAnswersViewController)
theDestination.lat = self.geoLati
theDestination.lng = self.geoLong
}
}

答案解决方案:

正如建议的,要解决这个问题,您只需创建从 viewController1 到 viewController2 的 Segue,而不是从按钮创建。这样,您就可以使用“performSegue”方法以编程方式触发prepareForSegue,该方法无论如何都会调用prepareForSegue。

最佳答案

要解决这个问题,您只需创建从 viewController1 到 viewController2 的 Segue,而不是从按钮创建。这样,您就可以使用“performSegue”方法以编程方式触发prepareForSegue,该方法无论如何都会调用prepareForSegue。

关于swift - 完成处理程序后执行Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26996822/

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