2015-07-19 45 views
0

我敢肯定,这将是一个简单的答案,也许一个方法我缺少落实。这里有:检测儿童的UIViewController被弹出

在我的Controller1我使用pushViewController推新视图Controller2到我的视图堆栈。我收到一个后退按钮。

现在,当我的Controller1中按下“后退”按钮时,我希望能够检测到Controller2正在弹出,并且我们又回到了Controller1。说得通?

我试图做到这一点与ViewDidAppear,但我不知道如何检测一个弹出的控制器。还有其他答案,但他们都在Controller2viewWillDisappear

在斯威夫特我会怎么做呢?

+0

解释你正在尝试做什么,作为这个触发器的结果 – Wain

+0

@当我推送到Controller2时,我在''Controller1''(放大地图)中执行一些其他操作。从''Controller2''回来时,我需要缩小地图。地图控制是在''Controller1''中完成的,我不想将参考传递给Controller2来缩小 – kernelpanic

+0

因此,当显示C2时,您可以看到一张地图吗?您是使用自定义儿童演示文稿还是导航控制器?授权可能是适当的解决方案。 – Wain

回答

0

不知道更多,你应该传递第一个控制器的引用到第二个控制器,这样第二个控制器可以告诉第一个控制器何时完成(这是一个简单的委托关系,它也可以使用块/关闭)。

理想情况下,第一控制器应负责驳回第二控制器,无论是当它到达这个回调,或者更适当地,直接在“取消”按钮被点击。

+0

如果按下第二个控制器的后退按钮,第二个控制器怎么会知道(调用委托)? – bio

+0

如果它是一个后退按钮@bio,那么你在导航控制器中,所以你可以使用导航控制器委托或只是视图将消失。 – Wain