无论如何要延迟容器视图中的嵌入式转场?
Is there anyway to delay an embedded segue in a container view?
我目前正在 Swift 中开发一个应用程序,该应用程序在嵌入另一个视图控制器的表视图中有一个位置列表。我遇到的问题是它在我获取用户位置之前加载了 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 之前没有时间更新。
您可以使用 属性 Observers 像 didSet
和 willSet
来监视经度和纬度的变化。一旦两者都改变了,就开始了转场。
例如:
var tup : (longitude: Int, latitude: Int) = (0,0) {
didSet {
print("Segue")
//Segue here
}
}
tup = (longitude: 1, latitude: 2)
一旦tup
改变,你可以触发segue
我用这段代码修复了它:
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
我目前正在 Swift 中开发一个应用程序,该应用程序在嵌入另一个视图控制器的表视图中有一个位置列表。我遇到的问题是它在我获取用户位置之前加载了 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 之前没有时间更新。
您可以使用 属性 Observers 像 didSet
和 willSet
来监视经度和纬度的变化。一旦两者都改变了,就开始了转场。
例如:
var tup : (longitude: Int, latitude: Int) = (0,0) {
didSet {
print("Segue")
//Segue here
}
}
tup = (longitude: 1, latitude: 2)
一旦tup
改变,你可以触发segue
我用这段代码修复了它:
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