检测子 UIViewController 被弹出

Detect Child UIViewController being popped

我相信这将是一个简单的答案,也许是我缺少实现的方法。这里是:

在我的 Controller1 中,我使用 pushViewController 将新视图 Controller2 推送到我的视图堆栈中。我有一个后退按钮。

现在,当在我的 Controller1 中按下后退按钮时,我希望能够检测到 Controller2 正在弹出并且我们回到了 Controller1。有道理吗?

我试图用 ViewDidAppear 做到这一点,但我不确定如何检测弹出的控制器。这里还有其他答案,但它们都在 viewWillDisappear

上的 Controller2 中显示示例

在 Swift 中我该怎么做?

在不知道更多的情况下,您应该将第一个控制器的引用传递给第二个控制器,以便第二个控制器可以在完成时告诉第一个控制器(这是一个简单的委托关系,也可以使用块来实现/ 闭包)。

理想情况下,第一个控制器应该负责关闭第二个控制器,或者在它收到此回调时,或者更恰当地说,在 'dismiss' 按钮被点击时直接关闭。