【问题标题】:Swift: why does "performSegueWithIdentifier" happen twice?斯威夫特:为什么“performSegueWithIdentifier”会发生两次?
【发布时间】:2015-11-24 16:25:08
【问题描述】:

在我的应用中,我有以下情节提要片段:

从粉红色的按钮中,我在右侧的 UIViewController 中添加了一个名为“toFishPic”的显示转场。这是链接到粉红色按钮的 swift 代码:

@IBAction func toFishPhoto(sender: UIButton) {

    dispatch_async(dispatch_get_main_queue()) {
        self.performSegueWithIdentifier("toFishPic", sender: self)
    }
}

我不知道为什么,但是当点击粉色按钮时,右侧的 UIViewConroller(带有大 UIImageView 的那个)会加载两次,就好像后面有一个相同的一样。为什么会这样?

【问题讨论】:

  • 您为什么要尝试异步执行此操作?摆脱 dispatch_async 并调用 performSegueWithIdentifier。
  • 因为我在之前的 ios 应用程序项目中一直都是这样做的,而且效果很好。我认为这是正确的方式......
  • 完全不需要,不用试一下。
  • 我刚刚尝试过简单的self.performSegueWithIdentifier("toFishPic", sender: self),但我得到了相同的结果

标签: swift uibutton segue


【解决方案1】:

我认为您将粉色按钮直接链接到 PhotoViewController,而不是将 ActionFishViewController 链接到 PhotoViewController。如果您要使用 performSegueWithIdentifier,请不要直接链接并在控制器之间重新连接。

尽量不要调用 self.performSegueWithIdentifier("toFishPic", sender: self) (//) 并检查是否可以推送到 PhotoViewController。如果它有效,则意味着您将按钮直接链接到 PhotoViewController。

【讨论】:

  • 是的,我已将粉色按钮与 PhotoViewController 链接...似乎我无法将 ActionFishViewControllwe 与 PhotoViewController 链接,但我应该链接按钮。天哪……我很困惑。我会尝试你的建议。谢谢
  • 说得对,伙计!我将粉色按钮链接到照片视图控制器时犯了一个错误。相反,我应该按照你所说的链接两个视图控制器。谢谢!
猜你喜欢
  • 2016-12-27
  • 2016-09-19
  • 1970-01-01
  • 2017-07-22
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多