UITableViewControllerからカスタムUIViewを開くとき、カスタムビューを閉じてテーブルビューに戻るにはどうすればよいですか?
-
06-07-2019 - |
質問
ゲームのメニューに UITableViewController
を使用しています。テーブルビューは、ゲームを表示するカスタム UIView
のビューコントローラーを開きます。ゲームが終了すると、 UIView
が通知され(MVCプリンシパルを台無しにしている)、そこから私は少し迷います。
質問:
-
UIView
はコントローラーと通信できますか?方法は? - 1つのコントローラーがそれを開始したコントローラーと通信できますか?方法は?
- この複雑なビューとコントローラーのすべてをスムーズに移行するにはどうすればよいですか
解決
-
ここでデリゲートプロトコルを使用します。カスタムゲームUIViewは、
delegate
プロパティを使用して、イベント(ゲームオーバー、ゲームの一時停止、ビューのクローズなど)が発生したときにこのデリゲートでメソッドを呼び出すことができます。デリゲートの使用に関する素晴らしい投稿を次に示します。 Objectiveでデリゲートを作成するにはC? -
UINavigationControllerの使用をお勧めします。必ずしもナビゲーションバーを表示する必要はありませんが、View ControllerをNavigation Controllerにネストすると、
-pushViewControllerAnimated:
および-popViewControllerAnimated:
にアクセスできますネストされたView Controllerのレベル間を非常に簡単に移動できます。 -
UINavigationControllerのもう1つの利点-ビューを切り替えると、素晴らしいスライドアニメーションが得られます。
UIKit UINavigationController / UIViewControllerメカニズムよりも好まれる可能性のある他のサードパーティメカニズムがあります。 Three20プロジェクト、特にTTNavigationCenterクラスをご覧ください。