2015-12-01 152 views
0

我能够知道哪个segue刚被执行/弹出吗?知道最近执行/弹出segue?

例如我有2个控制器:

  • 视图控制器A:具有1个按钮导航到查看B.
  • 视图控制器B:有后退按钮查看A.

我想在视图中A可以检测到视图B刚刚从堆栈弹出,所以我可以在ViewWillAppear中做一些事情。

我可以做到吗?

回答

0

您可以命名该segue,然后执行prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)方法,其中您检查标识符是否为segue。如果是从ControllerA到ControllerB的继续,只需设置一些标志,您将在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 
    } 
} 
+0

是的,但有什么办法?看来我找不到需要从segue返回的委托方法。 – Rendy

+0

没有什么像“从赛格返回”。 Segue对象只是封装了从一个控制器转换到另一个控制器的操作。在显示segue它基本上需要两个控制器,并决定是否会presentModal或推... –

+0

http://stackoverflow.com/questions/12380905/ios-how-to-detect-programmatically-when-top-view -controller-是弹起 – ZHZ