これは非常に基本的な質問かもしれませんが、私はまだ答えを見つけることができませんでした。アプリのメニューとして機能するUITableViewがあります。テーブルビューの各行を選択すると、UIViewControllerの異なるサブクラスが開きます。
現時点では、私のコードはAppleのUICatlogの例で使用されているのと同じように機能します。メインビューコントローラ(テーブルビュー)では、各メニュー項目は配列(menuList)のディクショナリに記述されます。各ディクショナリには、その画面のUIViewControllerサブクラスのインスタンスと、メニュー項目に関するその他のデータが含まれています。ユーザーが行を選択すると、didSelectRow atIndexPathが起動し、menuList配列のそのindexPath.rowにあるディクショナリに格納されている適切なビューコントローラを呼び出します。
テーブルビューが最初にロードされるときに、すべての単一のビューコントローラを割り当てて初期化するのは非常に無駄なようです。
私の質問は次のとおりです。関連する行がタップされた場合にのみビューコントローラのサブレーザーを割り当て/初期化するために、UICatalogで示されている方法よりも優れた方法はありますか?(didSelectRowで複雑なif..else構造を使用できることはわかっていますが、これにより、didSelectRowメソッドが非常に長くなり、カプセル化が中断されます。これを行うためのよりクリーンな方法があり、適切なViewControllerベースを割り当てて初期化できるかどうか疑問に思います。辞書からのデータについて)