ナビゲーションコントローラーでビューをプッシュしました。たとえば、view2からview1メソッドを呼び出したい場合は、view1がview2をプッシュします。出来ますか。それは良い習慣ですか。
TIA
ナビゲーションコントローラーでビューをプッシュしました。たとえば、view2からview1メソッドを呼び出したい場合は、view1がview2をプッシュします。出来ますか。それは良い習慣ですか。
TIA
はい、可能です。実際には、いくつかの方法があります。
コメントでNeverBeが提案しているように、パターンを使用delegate
します(ただし、呼び出し元に参照を渡す必要があります)
View1
作成時に参照を渡すだけView2
で、後でその参照を使用して必要なメソッドを呼び出すことができます。
viewController
スタック上で前のものを見つけて、NavigationController
それが利用できるパブリックメソッドを呼び出すことができます
内部通信でアプリを処理するようにアプリを構成するには、いくつかの方法があります。構造化する方法はあなた次第ですが、オブジェクト指向プログラミングの基本的な知識が必要であり、できれば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に表示される情報に反映されます。