【问题标题】:Know recent performed/popped segue?知道最近执行/弹出的 segue 吗?
【发布时间】:2016-03-04 23:38:31
【问题描述】:

我能否知道刚刚执行/弹出了哪个转场?

例如我有 2 个控制器:

  • 视图控制器 A:有 1 个导航至视图 B 的按钮。
  • 视图控制器 B:具有返回视图 A 的按钮。

我希望在 View A 中可以检测到 View B 刚刚从堆栈中弹出,所以我可以在 ViewWillAppear 中做一些事情。

我可以吗?

【问题讨论】:

    标签: ios objective-c segue uistoryboardsegue


    【解决方案1】:

    您可以命名segue,然后实现prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 方法,在该方法中检查标识符是否为segue。如果是从 ControllerA 到 ControllerB 的 segue,只需设置一些标志,您将在 viewWillAppear 方法中检查。

    类似这样的:

    var pushedB = false
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "mySegueName" {
            pushedB = true
        }
    }
    
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        if pushedB {
            pushedB = false
            // TODO your action
        }
    }
    

    【讨论】:

    • 是的,但是有什么办法吗?似乎我找不到需要从 segue 返回的委托方法。
    • 没有什么能比得上“从赛格回来”。 Segue 对象只是封装了从一个控制器转换到另一个控制器的操作。在 show segue 中,它基本上需要两个控制器并决定是执行 presentModal 还是 push...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2016-03-31
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多