【问题标题】:Identify which segue triggered UIViewController识别哪个 segue 触发了 UIViewController
【发布时间】:2017-04-28 21:06:40
【问题描述】:

我有一个UIViewController 可以从来自其他各种UIViewControllers. 的多个popover segues 访问我需要根据发件人是谁,或者可能取决于segue 标识符来执行一些代码。我想知道是否有一种方法可以在弹出视图中获取此信息,而无需在父视图控制器中使用 prepareForSegue 方法。

我问是因为我的一些控制器非常简单并且完全在 IB 中构建,作为一个懒惰的程序员,我不想为它们创建自定义类。

【问题讨论】:

    标签: ios swift segue uipopovercontroller popover


    【解决方案1】:

    如果唯一的问题是您不想为简单类创建自定义类,请实现 prepareForSegue 并通过检查 segue.identifier 了解触发了哪个 segue。

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // segue.identifier will give you which segue was triggered. Using this info you can branch out your logic......
    }
    

    【讨论】:

    • 所以没有prepareForSegue就没有办法吗?
    • 可能还有其他方法,但是即使您确实想出了一些将在执行 segue 时调用的方法。所以基本上你会尝试复制一些类似于 prepareForSegue 已经为你做的事情。 :)
    • 写这个问题比为你的视图控制器创建一个自定义类要花更长的时间。您甚至可以创建一个可重用的视图控制器,只需将 segue 名称放入属性中即可。
    【解决方案2】:

    使用这个override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool { if identifier == "yourseguename" { // do your stuff and then decide if you want to perform it return true } return false }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多