はい、完全に可能です。はい、View Controller を使用する必要がありますが、そうする必要はありません。それは厳密にスタイル上の選択です。ビュー コントローラーを使用しない場合、すべてのコントローラー ロジックは単一のウィンドウ コントローラーにある可能性があります。大きなアプリの場合、それは苦痛になるかもしれません。ビュー コントローラーは、UI を論理コンポーネントと制御ユニットに分解するのに役立ちます。
次のようにView Controllerメソッドを実行します。
- コンポーネント ビューごとに個別の xib を作成します。
- xibごとに、それをロード、所有、および制御するView Controllerサブクラスを作成します。
- これをさらに進めて、ビュー内の個別の領域にサブ ビュー コントローラーを用意することができます。
- ウィンドウ コントローラーの awakeFromNib クラスで、トップレベルのビュー コントローラーをすべてインスタンス化します。
これで、複数のトップレベル ビュー コントローラーを持つアプリの基本的なフレームワークができました。ここからのタスクは、必要に応じて、またはユーザー入力の指示に従って、メイン ウィンドウ内のビューを配置することです。トップレベルのビューが 3 ~ 4 個ある場合もあれば、1 個の場合もあります。これらのシナリオに大きな違いはありません。
これを達成するには多くの方法があります。
あなたの特定のケースでは、それを行う簡単な方法は次のとおりです。
- 最上位のテーブルとボーダーレス タブ ビューを使用し、選択したタブをプログラムで設定します。
一般的に、あなたはたくさんのことをすることができます:
- メイン ウィンドウのコンテンツ ビューでサブ ビューを手動で配置します。
- 必要に応じて、サブビューを内外または表示可能領域内に移動 (アニメーション化) します。
- メイン ウィンドウで分割ビューを使用して、表示したい領域または表示したくない領域を折りたたんだり折りたたんだり解除したりします。
ところで、この方法は、ドキュメントベースのアプリを作成しているかどうか、またはそれが単一ウィンドウまたはマルチウィンドウのドキュメントベースのアプリであるかどうかに関係なく機能します。
ビュー コントローラーを使用することの 1 つの欠点は、トップレベルのビュー レイアウトが多く、管理を IB ではなくプログラムで行う必要があることです。しかし、それほど難しいことではありません。
通常は、addSubview: と setFrame: を実行するだけで、既に IB にレイアウトされている親ビューにビューを配置できます。
しかし、より複雑で手動の操作を行うには、ドキュメントを読み、フレーム/境界、反転座標、自動サイズ変更、自動サイズ変更をオーバーライドして独自のレイアウトを行う方法を理解する必要があります。