0

ナビゲーションコントローラーでビューをプッシュしました。たとえば、view2からview1メソッドを呼び出したい場合は、view1がview2をプッシュします。出来ますか。それは良い習慣ですか。

TIA

4

2 に答える 2

0

はい、可能です。実際には、いくつかの方法があります。

  1. コメントでNeverBeが提案しているように、パターンを使用delegateします(ただし、呼び出し元に参照を渡す必要があります)

  2. View1作成時に参照を渡すだけView2で、後でその参照を使用して必要なメソッドを呼び出すことができます。

  3. viewControllerスタック上で前のものを見つけて、NavigationControllerそれが利用できるパブリックメソッドを呼び出すことができます

于 2012-08-08T11:42:02.370 に答える
0

内部通信でアプリを処理するようにアプリを構成するには、いくつかの方法があります。構造化する方法はあなた次第ですが、オブジェクト指向プログラミングの基本的な知識が必要であり、できればModelViewControllerやその他のデザインパターンも知っている必要があります。

アプリを構成する方法の例をいくつか示します。

提案1

  • クラスAを作成し、アプリにそのインスタンスを作成させます。

  • AがView1とView2のインスタンスをそれぞれ1つ作成し、それらへの参照を保持するようにします。

  • View1がAのメソッドを呼び出すようにします。これにより、View2のメソッドを呼び出すことができます。

  • View2がAのメソッドを呼び出すようにします。これにより、View1のメソッドを呼び出すことができます。

提案2

  • アプリでView1のインスタンスを作成します

  • View1にView2のインスタンスを作成させ、それへの参照を保持させます。

  • View1をView2のデリゲートにします

  • View2はデリゲートを呼び出すことでView1のメソッドを呼び出すことができ、View1は参照を呼び出すことでView2のメソッドを呼び出すことができます。

提案3

  • いくつかのクラスM1、M2、およびM3(アプリケーションを説明するモデル)を作成します

  • ビューView1とView2を作成します。

  • コントローラクラスCを作成します

  • View1とView2にM1、M2、M3の情報を表示させます

  • ユーザーがView1またはView2を操作するときは、Cでメソッドを呼び出させ、Cでメソッドを呼び出し、M1、M2、およびM3でメソッドを呼び出して状態を変更します。

  • M1、M2、およびM3の変更は、View1およびView2に表示される情報に反映されます。

于 2012-08-08T11:48:15.313 に答える