Swift 斯威夫特·塞格表演了多次

Swift 斯威夫特·塞格表演了多次,swift,segue,Swift,Segue,我的应用程序中的segue被多次调用,这会导致视图持续“加载”,直到应用程序停止调用segue函数。这样做大约4次,直到完成为止。在代码中放置断点后,我注意到应用程序正在这两个函数之间跳转: if success { self.performSegueWithIdentifier("startGame", sender: "user") } 这是触发segue(用户滑动某物)的操作。然后转到下一个断点: if (segue.identifier == "startGame") {

我的应用程序中的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视图)连接到目标视图

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

谢谢

  • 在情节提要中,按住control键并从第一视图控制器的黄色图标拖动到第二视图控制器,创建一个序列
  • 给它一个id,如果它们嵌入到导航控制器中,那么应该是
    push
  • 在第一个视图控制器类中:

    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)
    

  • 这与@james提供的代码有何不同?