2017-11-21 11 views
1

私はiOS開発とSwiftの新機能です。View Controllerイベントに問題があります。トップビューコントローラが終了すると自動的に呼び出され、以前のView Controllerが再び表示されます。View Controller前のビューを閉じて再表示するコントローラ

実際には、私はビューコントローラAとビューコントローラBを持っています。ビューコントローラAのボタンを1つ(ビューコントローラに移動すると仮定します)をクリックしてビューコントローラBに移動し、ビューコントローラBのいくつかのタスクを実行し、私は1つのボタンを押したままにしておくと仮定します。表示されますか?あなたのケースに基づいて

+0

viewWillAppearとviewWillDisappearを使用してください –

+0

ありがとうございますAhmad F –

答えて

1

ビューコントローラAは、それがUIViewController牽引のいずれかの方法であなたの条件(複数可)に-dependsを実装することにより、再表示されていることを知っている - :

ビューコントローラににビューが追加されようとしていることを通知します。ビュー階層。

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    // ... 
} 

または

は、そのビューがビュー 階層に追加されたビューコントローラに通知します。

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    // ... 
} 

ビューコントローラが提示されたときに、これらの方法の両方はまた、実行されることに注意してください/だけでなく、却下された後/ポップ、プッシュ。

あなたのケースでは、コントローラBが消えているか消えているかどうかを知る必要があります。この目的のために、あなたもあなたの条件(複数可)に-depends -also UIViewControllerのいずれかの方法を実装することができ - :

は、そのビューを約あるビューコントローラを通知しますビュー階層から から削除されます。

または

は、そのビューがビュー 階層から削除されたビューコントローラに通知します。したがって


、現在提示ビューコントローラはビ​​ューコントローラBであり、以下のように2つのビューコントローラ間のメソッドの呼び出しを組み合わせた階層があるべき、却下されると仮定:

View Controller B =>viewWillDisappear(_:)

表示コントローラ =>viewWillAppear(_:)です。

表示コントローラB =>viewDidDisappear(_:)です。

表示コントローラ =>viewDidAppear(_:)です。

+0

ありがとうございますAhmad F –

+0

@SachinthaUdara助けて嬉しいです:) –

関連する問題