UITableViewControllerからカスタムUIViewを開くとき、カスタムビューを閉じてテーブルビューに戻るにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1029703

質問

ゲームのメニューに UITableViewController を使用しています。テーブルビューは、ゲームを表示するカスタム UIView のビューコントローラーを開きます。ゲームが終了すると、 UIView が通知され(MVCプリンシパルを台無しにしている)、そこから私は少し迷います。

質問:

  1. UIView はコントローラーと通信できますか?方法は?
  2. 1つのコントローラーがそれを開始したコントローラーと通信できますか?方法は?
  3. この複雑なビューとコントローラーのすべてをスムーズに移行するにはどうすればよいですか
役に立ちましたか?

解決

  1. ここでデリゲートプロトコルを使用します。カスタムゲームUIViewは、 delegate プロパティを使用して、イベント(ゲームオーバー、ゲームの一時停止、ビューのクローズなど)が発生したときにこのデリゲートでメソッドを呼び出すことができます。デリゲートの使用に関する素晴らしい投稿を次に示します。 Objectiveでデリゲートを作成するにはC?

  2. UINavigationControllerの使用をお勧めします。必ずしもナビゲーションバーを表示する必要はありませんが、View ControllerをNavigation Controllerにネストすると、 -pushViewControllerAnimated:および -popViewControllerAnimated:にアクセスできますネストされたView Controllerのレベル間を非常に簡単に移動できます。

  3. UINavigationControllerのもう1つの利点-ビューを切り替えると、素晴らしいスライドアニメーションが得られます。

UIKit UINavigationController / UIViewControllerメカニズムよりも好まれる可能性のある他のサードパーティメカニズムがあります。 Three20プロジェクト、特にTTNavigationCenterクラスをご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top