0

Objective-C でソフトウェア設計を学び始め、Instagram のようなアプリを実装しています。ユーザーはフィードを読んだり投稿したりできます。しかし、私は問題を満たしています。ビューは互いに通信できず、異なるビュー内に実装されたビュー遷移メソッドです。移行トラフィックを一元化するのに役立つ設計パターンがいくつかあることはわかっています。満たす必要のある制約がいくつかあります。


  1. UITabbarController には、いくつかの UINavigationController と UIViewController (4 つのタブ) が含まれています

  1. ビュー遷移を 1 つのクラス階層に集中させたい例: クラス階層の例:
                           [ViewTransition] 
          
                                      ^
                                      |
                   +------------------+-----------------+ 

                   |                  |                 | 
    

             [ToAView]            [ToBView]           [ToCView]

(ViewTransition: 抽象メソッド「requestViewTransition」を含むプロトコル/抽象クラス。)

(ToAView:任意のビューから「A」ビューへのビュー遷移を行う抽象メソッド「requestViewTransition」を実装したクラス。)


  1. ビュー遷移ごとに実装方法が異なる場合があります。

たとえば、「A」ビューから「B」ビューへは、以下を使用する必要があります。

[navigationController pushViewController:BViewController アニメーション:YES];

たとえば、「C」ビューから「B」ビューへは、以下を使用する必要があります。

[CViewController presentModalViewController:BViewController アニメーション:YES];


  1. View Controllerの中には、いくつかのObserverパターンが必要です。たとえば、ユーザーは「A」ビューにデータを入力し、「A」ビューのモデルはオブザーバーにビューを更新するよう通知する必要があります。

4

1 に答える 1

1

すべてのビューから同じデータにアクセスしようとしているようですね。

最良のアプローチは、おそらくsingletonを使用することです。必要なユーザー情報を取得してシングルトン内の変数に保存し、シングルトン内のメソッドを使用してビュー間で共有します。

または、実際に行っていることに応じて、カスタムの init メソッドを設定し、必要なデータでビューを初期化するだけです。

于 2012-11-19T17:03:29.050 に答える