【问题标题】:iOS 8 - UIBarButtonItem Push Segue overriding ActioniOS 8 - UIBarButtonItem 推送 Segue 覆盖操作
【发布时间】:2014-11-24 15:41:52
【问题描述】:

这个问题似乎是 iOS 8 的新问题,因为我在 iOS 7 中使用了这个设置,并且在我更新时它刚刚开始导致问题。

在 Interface Builder 中,如果我有一个 UIBarButtonItem 触发一个 Show (Push) segue 到另一个 View Controller 并且还连接到一个动作,那么 segue 会发生但永远不会调用该动作。如果我使用常规按钮尝试此操作,则会调用 segue 和 action。 UIBarButtonItems 在导航栏和独立的UIToolBars 中都会发生这种情况

谁能解释为什么会发生这种情况/提供可能的解决方法?谢谢

【问题讨论】:

  • 你能解释一下为什么你需要从同一个触摸事件中调用一个动作和一个segue吗?
  • @MikeTaverne 一个非常常见的原因是为呈现的视图控制器准备数据。
  • 在我的情况下,我正在录制音频,需要在 segue 发生之前向 RecordingController 发送停止消息。

标签: ios objective-c cocoa-touch segue uibarbuttonitem


【解决方案1】:

解决方法是创建一个手动 segue 并使用 -(void)performSegueWithIdentifier: sender: 从您的操作中调用它

【讨论】:

    【解决方案2】:

    我认为最好的方法是在视图控制器中实现 prepareForSegue:

    override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "MySegueIdentifier") {
        // pass data to next view
    }
    }
    

    其中“MySegueIdentifier”是故事板中转场的名称。

    【讨论】:

      猜你喜欢
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多