2015-12-01 82 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