0

私のストーリーボードでは、アプリのワークフロー設計は次のようになります

-> NavigationController -> ViewControllerX -> TabBarController -> NavigationController -> ViewControllerA
                                                               -> NavigationController -> ViewControllerB
                                                               -> NavigationController -> ViewControllerC

カプセル化の設計パターンに関して、次のアプローチのどれが包含ViewControllerXへのセグエイングに関するデータを共有するのに最適か疑問に思います:TabBarControllerViewControllerA/B/C

  1. カスタム プロパティを使用して TabBarController をサブクラス化します。次に、セグエでデータが TabBarController に渡されます。それぞれが でViewControllerA/B/Cデータを「プル」しviewDidLoadますCustomVar *myCustomVariable = self.tabBarController.myCustomVariable

  2. シングルトンを作成します。

プロジェクトにはさらにいくつかの ViewControllers があり、共有は と の間でのみ行われるため、アプローチ 1 をお勧めしViewControllerXますViewControllerA/B/C。問題はありますか?

4

1 に答える 1

0

まったく問題はありません。似たような状況に直面するたびに、私が行く方法です。このような「単純な」状況では、それ以上に複雑なものを探す必要はありません。

私自身の経験を除いて、私の答えを裏付けるものは何もありません。アプローチ 1 に悪い点は何もありません。

解決策 2 については、アプリケーション全体で必要なデータがある場合、通常は AppDelegate を「シングルトンとして」使用します。それについて良いことも悪いことも聞いたことがありますが、悪いことに直面したことはなく、かなり頻繁に使用しています。しかし、あなたの状況を考えると、解決策 1 を使用したいと思います。解決策 2 は、アプリケーション ワークフロー全体で使用されるデータ用です。

編集 :

AppDelegate を singleton として使用する方法は次のとおりです。

于 2013-01-28T08:34:15.637 に答える