反正有没有在容器视图中延迟嵌入的segue?

时间:2016-05-25 13:30:40

标签: iphone swift uiviewcontroller location segue

我目前正在研究Swift中的一个应用程序,该应用程序在一个嵌入在另一个视图控制器中的tableview中有一个位置列表。我遇到的问题是它在我获取用户位置之前加载了segue。我需要它等到获得位置。这就是我目前正在做的事情:

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

    if let embeddedVC = segue.destinationViewController as? MapList where segue.identifier == "locationList" {

        embeddedVC.longitude = self.longitude
        embeddedVC.latitude = self.latitude

    }


}

当前它只是传递0,0的位置,因为在执行segue之前没有时间更新它。

2 个答案:

答案 0 :(得分:1)

我使用此代码修复了它:

var embedvc:MapList?

然后在prepareForSegue函数中:

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

    let detailScene = segue.destinationViewController as! MapList

    self.embedvc = detailScene;

}

然后当我想传递位置时:

self.embedvc?.latitude = self.latitude
self.embedvc?.longitude = self.longitude

答案 1 :(得分:0)

您可以使用 Property Observers ,例如window.document = 10didSet来监控经度和纬度的变化。一旦两者都改变​​预制形式的segue。

例如:

willSet

更改var tup : (longitude: Int, latitude: Int) = (0,0) { didSet { print("Segue") //Segue here } } tup = (longitude: 1, latitude: 2) 后,您可以触发segue