因此當前用戶在ViewController2中,要轉換到ViewController1,正在調用presentViewController。如何在presentViewController後立即調用另一個UIViewController的IBAction?
ViewController1打開後不久,就有一個需要調用的IBAction方法。
這是如何實現的?任何幫助將不勝感激。謝謝!
因此當前用戶在ViewController2中,要轉換到ViewController1,正在調用presentViewController。如何在presentViewController後立即調用另一個UIViewController的IBAction?
ViewController1打開後不久,就有一個需要調用的IBAction方法。
這是如何實現的?任何幫助將不勝感激。謝謝!
視圖控制器可以在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
謝謝你的優雅解決方案!它像一個魅力一樣工作! –
太好了,請「接受」答案,以便其他用戶知道它的工作原理 –
難道你不能只是在did load方法中調用它嗎? –
應該在'viewWillAppear(animated:)',而不是'viewDidLoad()'。只有當VC被加載到內存中時,前者纔會被調用,而當VC成爲最頂端(即可見)視圖控制器時,後者被調用。 – NRitH