【发布时间】:2017-08-04 05:43:40
【问题描述】:
在 UINavigationController 上,我有两个视图控制器 1 和 2。有一个从 1 到 2 的 Show segue 和一个从 2 到 1 的程序化展开 segue(控制+从场景的视图控制器图标拖动到其退出图标)。
我如何知道 2 何时即将从 UINavigationController 堆栈中弹出?
viewWillDisappear,当另一个视图被推送到 UINavigationController 堆栈时也会调用,因此它不是解决方案。我看到answer on SO 建议创建后退按钮而不是使用默认的后退按钮,但我想知道是否没有系统方法可以用来找出 UIViewController 何时从堆栈中弹出?
【问题讨论】:
-
为什么你需要确切地知道。你不能在视图中触发某些东西会出现在其他地方吗?只是想获取上下文
-
@agibson007 我试图让场景更简单,但我的情况是:我在一个 UINavigationController 上有 9 个 UIViewController。如果用户已登录,则在第 4 中,转到第 8,否则转到第 5。在第 8 个我有一个 tableView,如果第 1 行被触摸到第 9 个,否则到第 10 个。在第 10 中,当我触摸返回按钮(视图即将消失)时,我需要知道是否应该根据之前在第 8 中选择的行选择第 9 或第 8。
viewWillDisapper在 UINavigationController 被推送或弹出时都会被调用,因此将它与isMovingFromParentViewController结合使用适用于我的情况。
标签: swift uiviewcontroller unwind-segue