【发布时间】:2016-03-04 23:38:31
【问题描述】:
我能否知道刚刚执行/弹出了哪个转场?
例如我有 2 个控制器:
- 视图控制器 A:有 1 个导航至视图 B 的按钮。
- 视图控制器 B:具有返回视图 A 的按钮。
我希望在 View A 中可以检测到 View B 刚刚从堆栈中弹出,所以我可以在 ViewWillAppear 中做一些事情。
我可以吗?
【问题讨论】:
标签: ios objective-c segue uistoryboardsegue
我能否知道刚刚执行/弹出了哪个转场?
例如我有 2 个控制器:
- 视图控制器 A:有 1 个导航至视图 B 的按钮。
- 视图控制器 B:具有返回视图 A 的按钮。
我希望在 View A 中可以检测到 View B 刚刚从堆栈中弹出,所以我可以在 ViewWillAppear 中做一些事情。
我可以吗?
【问题讨论】:
标签: ios objective-c segue uistoryboardsegue
您可以命名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
}
}
【讨论】: