2

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

質問:

  1. UIViewはコントローラと通信できますか? どのように?
  2. 1 つのコントローラーは、それを開始したコントローラーと通信できますか? どのように?
  3. この複雑なビューとコントローラーのすべての間を適切に移行するにはどうすればよいでしょうか?
4

1 に答える 1

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

  2. UINavigationController を使用することをお勧めします。-pushViewControllerAnimated:必ずしもナビゲーション バーを表示する必要はありませんが、アクセス可能なナビゲーション コントローラーに-popViewControllerAnimated:ビュー コントローラーをネストすると、ネストされたビュー コントローラーのレベル間のナビゲーションが非常に簡単になります。

  3. UINavigationController のもう 1 つの利点は、ビューを切り替えるときに素敵なスライド アニメーションが表示されることです。

UIKit UINavigationController/UIViewController メカニズムよりも好むかもしれない他のサードパーティのメカニズムがあります。Three20 プロジェクト、特に TTNavigationCenter クラスを確認してください。

于 2009-06-22T22:32:00.347 に答える