注:アプリ バックエンドについて話すとき、サーバー バックエンドを意味するわけではありません。アプリ バックエンドはアプリの一部です。アプリの非 UI 部分です。
コード設計について質問があります。j2objc の使用 Java は iOS アプリのバックエンドとして使用されますが、フロントエンドはまだ Objective-C です。
このモデルでナビゲーションを制御するのはどの部分 (フロントエンドまたはバックエンド) ですか?
以下を検討してください。最初の ViewController がロードされました。ユーザーがボタンをタップしました。次の 2 つのケースが考えられます。
フロントエンドがジェスチャを受け取り、要求された ViewController を開きます
フロントエンドはジェスチャを受け取り、そのアクションを Java バックエンドに報告します。Java バックエンドは、次に開くページを決定し、どの ViewController を表示するかをフロントエンドに伝えます。
私には、2 番目の解決策は、コード分離の順番でより理にかなっているように思えます。しかし、私に発生した1つの問題があります。アプリに次の ViewController 構造があるとします。
- 開始ページ:
UIViewController
メイン:UINavigationViewController
- > メイン-TabPage1:
UIPageViewController
- > メイン-TabPage2:
UIPageViewController
- > Main-TabPage3:
UIPageViewController
設定:UIViewController
アプリの to レベルをナビゲートする場合は簡単です。フロントエンドにスタートページ、メイン、または設定を開くように指示するだけです。しかし、ボタンをタップして Startpage または Main > Main-TabPage1 から Main > Main-TabPage3 に移動するのは何の役に立つでしょう。次のことを行う必要があります。
- Startpage を使用している場合: フロント エンドに、Main を確認してから Main TabPage3 を確認するように指示する必要があります。
- Main > Main-TabPage1 を使用している場合: Main-TabPage3 のみを表示するようにフロント エンドに指示する必要があります。
Java バックエンドから ViewController を明らかにするこのような単純なページ スキームのイベントには、考慮すべき多くのケースがあるようです。
これは、Java バックエンドからビューを公開する有効な方法ですか、それとももっと良い方法はありますか?