2017-07-16 9 views
0

現在、ユーザーはViewController2にあり、ViewController1に移行するにはpresentViewControllerが呼び出されています。presentViewControllerの直後に別のUIViewControllerのIBActionを呼び出す方法は?

すぐにViewController1が開くと、呼び出す必要があるIBActionメソッドがあります。

これはどのように達成できますか?どんな助けでも大歓迎です。ありがとうございました!

+2

didはloadメソッドで呼び出すことができませんでしたか? –

+1

'viewDidLoad()'ではなく 'viewWillAppear(animated:)'でなければなりません。前者は、VCがメモリにロードされたときにのみ呼び出され、後者は、VCが最上位(すなわち可視)のビューコントローラになるたびに呼び出される。 – NRitH

答えて

1

View Controllerは、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 
    } 
} 

そして最後にあなたが提示する前に、 2番目のビューコントローラまたはそれへの遷移:

nextViewController. doActionAfterAppear = true 
+0

エレガントなソリューションをありがとう!それは魅力のように働いた! –

+1

偉大な、他のユーザーがそれが働いたことを知るように答えを "受け入れてください" –

関連する問題