Swift segue 执行了多次
Swift segue performed multiple times
我的应用程序中的一个 segue 被多次调用,这导致视图持续 "load" 直到应用程序停止调用 segue 函数。它会执行大约 4 次,直到完成。在代码中放置断点后,我注意到应用程序在这两个函数之间跳动:
if success {
self.performSegueWithIdentifier("startGame", sender: "user")
}
这是触发 segue 的动作(用户滑动某些东西)。然后它转到下一个断点:
if (segue.identifier == "startGame") {
let destinationNavigationController = segue.destinationViewController as! GameViewController
destinationNavigationController.user = self.users[self.currentUser]
}
该应用程序在两个部分之间来回移动了大约 4 次。当我在故事板中创建 segue 时,我确保将 segue 从视图控制器本身(不是 table/UI 视图)连接到目标视图。
我还能做些什么来解决这个问题?
谢谢!
- 在情节提要中,通过按住 control 并从第一个视图控制器的黄色图标拖动到第二个视图控制器来创建一个 segue。
- 给它一个id,如果它们嵌入在导航控制器中,则种类应该是
push
。
在您的第一个视图控制器中class:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "startGame" {
let viewController = segue.destinationViewController as! GameViewController
// this next view controller should have property that will store passed value
viewController.user = self.users[self.currentUser]
}
}
当你想移动到下一个视图控制器时:
performSegueWithIdentifier("startGame", sender: self)
我的应用程序中的一个 segue 被多次调用,这导致视图持续 "load" 直到应用程序停止调用 segue 函数。它会执行大约 4 次,直到完成。在代码中放置断点后,我注意到应用程序在这两个函数之间跳动:
if success {
self.performSegueWithIdentifier("startGame", sender: "user")
}
这是触发 segue 的动作(用户滑动某些东西)。然后它转到下一个断点:
if (segue.identifier == "startGame") {
let destinationNavigationController = segue.destinationViewController as! GameViewController
destinationNavigationController.user = self.users[self.currentUser]
}
该应用程序在两个部分之间来回移动了大约 4 次。当我在故事板中创建 segue 时,我确保将 segue 从视图控制器本身(不是 table/UI 视图)连接到目标视图。
我还能做些什么来解决这个问题?
谢谢!
- 在情节提要中,通过按住 control 并从第一个视图控制器的黄色图标拖动到第二个视图控制器来创建一个 segue。
- 给它一个id,如果它们嵌入在导航控制器中,则种类应该是
push
。 在您的第一个视图控制器中class:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "startGame" { let viewController = segue.destinationViewController as! GameViewController // this next view controller should have property that will store passed value viewController.user = self.users[self.currentUser] }
}
当你想移动到下一个视图控制器时:
performSegueWithIdentifier("startGame", sender: self)