【问题标题】:Connect performSegue w/ prepareForSegue in Swift在 Swift 中使用 prepareForSegue 连接 performSegue
【发布时间】:2015-01-28 00:58:00
【问题描述】:

抱歉标题含糊,我从来没有真正擅长用词,但这是我想做的事情的大致轮廓。

我有两个视图控制器, -一个叫设置 - 一个叫做 setDate

在设置视图控制器中,我有两个按钮,一个称为“摘要时间”,另一个称为“每日时间”

每个都链接到不同的 IBAction,这些 IBAction 使用 performSegue 连接到 setDate 视图控制器。

我的问题是如何通过比较执行 segue 的发件人在 setDate 视图控制器中执行 if 语句?

对不起,如果我没有多大意义,但有人可以帮助我吗?

【问题讨论】:

  • 你检查 sourceViewController 了吗?
  • 您可以从 segue 对象中获取源视图控制器和目标视图控制器。是这个意思吗?
  • 不是真的,两个按钮都在同一个视图控制器中,我需要找出哪个按钮执行了segue。

标签: ios swift


【解决方案1】:

您通常在“settings”视图控制器的“prepareForSegue”方法中配置“setDate”视图控制器。像这样的:

class SettingsViewController : ... {
  // ...

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segueSummaryTime" {
      let dest = segue.destinationViewController as SetDateViewController
      // configure dest for 'summary time'
      // for example:
      dest.isForSummary = true
      // ...
    }
    else if segue.identifier == "segueDetailTime" {
      // as above but for 'detail time'
    }
  }

  // ..
}

对于上述内容,您应该将每个按钮链接到不同的 segue,每个按钮都有一个标识符,如上所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 2014-08-31
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多