Swift segue执行了多次

时间:2015-06-10 22:43:05

标签: swift segue

我的应用程序中的segue被多次调用,这导致视图持续“加载”,直到应用程序停止调用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从视图控制器本身(不是表/ UI视图)连接到目标视图。

我还能做些什么来解决这个问题?

谢谢!enter image description here

1 个答案:

答案 0 :(得分:0)

  1. 在故事板中,通过控制并从第一个视图控制器的黄色图标拖动到第二个视图控制器来创建一个segue。
  2. 给它一个id,如果它们嵌入在导航控制器中,则该类型应为push
  3. 在您的第一个视图控制器类中:

    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]
    }
    

    }

  4. 当您想要移动到下一个视图控制器时:

    performSegueWithIdentifier("startGame", sender: self)