2015-06-10 115 views
2

我的应用程序中的segue被多次调用,导致视图持续“加载”,直到应用程序停止调用segue函数。它完成了大约4次,直到完成。设置断点在代码后,我注意到,应用在这两个功能之间弹跳:Swift segue执行多次

if success { 
    self.performSegueWithIdentifier("startGame", sender: "user") 
} 

这是触发赛格瑞(用户扫描的东西)的作用。然后它进入下一个断点:

if (segue.identifier == "startGame") { 
    let destinationNavigationController = segue.destinationViewController as! GameViewController 
    destinationNavigationController.user = self.users[self.currentUser] 
} 

该应用程序在两个部分之间来回约4次。当我在故事板中创建segue时,我确保将视图控制器本身的segue(不是表格/ UI视图)连接到目标视图。

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

谢谢! enter image description here

回答

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) 
    
+0

如何比这不同@james提供的代码? – krummens