【问题标题】:Swift segue performed multiple times多次执行 Swift segue
【发布时间】:2015-12-28 06:40:06
【问题描述】:

我的应用程序中的一个 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 次。当我在故事板中创建转场时,我确保将转场从视图控制器本身(不是表格/UI 视图)连接到目标视图。

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

谢谢!

【问题讨论】:

    标签: swift segue


    【解决方案1】:
    1. 在情节提要中,通过按住控件并将第一个视图控制器的黄色图标拖动到第二个视图控制器来创建一个转场。
    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)
      

    【讨论】:

    • 这与@james 提供的代码有何不同?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2018-12-05
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多