【发布时间】:2015-07-19 08:24:35
【问题描述】:
我相信这将是一个简单的答案,也许是我缺少实现的方法。如下:
在我的Controller1 中,我使用pushViewController 将新视图Controller2 推送到我的视图堆栈中。我得到了一个后退按钮。
现在,当在我的Controller1 中按下返回按钮时,我希望能够检测到Controller2 正在弹出,我们又回到了Controller1。有意义吗?
我试图用ViewDidAppear 来做这件事,但我不确定如何检测弹出的控制器。这里还有其他答案,但它们都在viewWillDisappearController2 中显示示例
我将如何在 Swift 中做到这一点?
【问题讨论】:
-
解释由于这个触发器你想要做什么
-
@Wain 当推送到
Controller2时,我正在Controller1(放大地图)中执行一些其他操作。从Controller2回来时,我还需要缩小地图。地图控制仅在Controller1中完成,我不想传递对 Controller2 的引用来进行缩小 -
所以你有一张在显示 C2 时可见的地图?您使用的是自定义子演示文稿还是导航控制器?委派可能是合适的解决方案。
-
@Wain 是的,我有一张一直在屏幕上可见的地图。 Tableview 是独立的,总线我在导航堆栈的根视图控制器中引用了 tha 地图。我不想在其他地方传播这个参考。哪个控制器应该将什么委托给谁?你能详细说明一下吗?
-
C2 应该在完成时通知 C1,尽管听起来您的地图管理意味着 C1 应该同时呈现 C2 并处理“返回”请求,因为地图始终可见。
标签: ios swift uiviewcontroller