2017-07-16 31 views
0

因此當前用戶在ViewController2中,要轉換到ViewController1,正在調用presentViewController。如何在presentViewController後立即調用另一個UIViewController的IBAction?

ViewController1打開後不久,就有一個需要調用的IBAction方法。

這是如何實現的?任何幫助將不勝感激。謝謝!

+2

難道你不能只是在did load方法中調用它嗎? –

+1

應該在'viewWillAppear(animated:)',而不是'viewDidLoad()'。只有當VC被加載到內存中時,前者纔會被調用,而當VC成爲最頂端(即可見)視圖控制器時,後者被調用。 – NRitH

回答

1

視圖控制器可以在viewWillAppear或viewDidAppear中調用它自己。

self.myAction() 

如果視圖控制器中描述你能做到無條件的情況下專門使用,否則如果你需要有條件做到這一點 - 暴露布爾:

public var doActionAfterAppear = false 

public override viewDidAppear(animated isAnimated: Bool) { 
    super.viewDidAppear(animated: animated) 
    if self.doActionAfterAppear { 
     self.myAction() 
     self.doActionAfterAppear = false 
    } 
} 

並且最後你目前的前第二個視圖控制器或轉換到它:

nextViewController. doActionAfterAppear = true 
+0

謝謝你的優雅解決方案!它像一個魅力一樣工作! –

+1

太好了,請「接受」答案,以便其他用戶知道它的工作原理 –

相關問題