【问题标题】:Identifying viewcontrollers presented modally in swift识别以 Swift 模式呈现的视图控制器
【发布时间】:2015-04-11 13:27:00
【问题描述】:

我有 2 个视图控制器(viewcontroller1viewcontroller2)。 它们都以模态方式(分别为vc1seguevc2segue)呈现给第三个视图控制器(viewcontroller3)。在 viewcontroller3 中,我希望能够识别出哪个 viewcontroller/segue 用于呈现viewcontroller3,并基于哪个视图控制器/segue 在viewcontroller3 中执行某些操作。

我怎样才能确定使用了哪个视图控制器/segue?

【问题讨论】:

  • 即使进行了代码编辑,我仍然不知道您在说什么。
  • 最好的方法是按照 Jelle 的建议让呈现视图控制器显式设置一些属性。不过你也可以看看presentingViewController属性(虽然viewDidLoad的时候好像没有设置,但是viewWillAppear的时候设置了)。

标签: ios swift


【解决方案1】:

使用override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 以您的视图控制器3现在知道发生了什么的方式捕获转场准备并轻推转场目的地。

【讨论】:

    【解决方案2】:

    @Jelle 的回答是一个很好的方法。这是在viewController3's viewWillAppear 中实现相同目标的另一种方法:

    if let viewContr2 = self.presentingViewController as? ViewController2 {
        // ViewController2 was who performed the segue
    } else if let viewContr3 = self.presentingViewController as? ViewController3 {
        // ViewController3 was who performed the segue
    }
    

    presentingViewController 可以更改为 parentViewController,具体取决于您的架构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2015-11-18
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多