2

私のプログラムは、5つのタブがあるタブバーで構成されています。タブ1、2、3のユーザーインターフェイスは同じですが、唯一の違いはコンテンツの表現のロジックにあります。たとえば、新しい、トップ...ストーリーボードにViewControllerのチェーンがあります。私の質問は、ViewControllerを再利用するにはどうすればよいですか。

4

1 に答える 1

1

ビューコントローラのコードファイル.mおよび.hを再利用しますか、それともUIを備えたストーリーボードオブジェクトを再利用しますか?

コードの再利用は簡単に実行できます。各ストーリーボードオブジェクトは、カスタムクラスに関連付けることができます。アイデンティティの下の右側にあるオブジェクトインスペクターにあります。同じViewControllerクラスを1つ以上のストーリーボードオブジェクトに割り当てることができます。これにより、コードを再利用できます。

ストーリーボードで作成したビューレイアウトを再利用し、同じストーリーボードを再利用したいが、異なるビューコントローラクラスを使用して(異なる機能を管理するために)、現在は不可能です。

潜在的な回避策は、xibファイルを追加し、その中にユーザーインターフェイスを配置することにより、カスタムUIViewを定義することです。次に、カスタムUIViewサブクラスを作成して割り当てます。次に、ストーリーボードで、カスタムビューを初期化し、サブビューとして追加できます。カスタムクラスを参照してUIを管理します。

UIが非常に複雑でない限り、通常は、別々のストーリーボードでUIを再作成し、適切なビューコントローラーをそれらに割り当てる方が簡単です。cmd-dを使用してストーリーボードを複製するか、単にコピーして貼り付けることができます。UIオブジェクトをコードに接続する前にこれを行う必要があります。これは、コピーアンドペーストによって古い参照が引き継がれる場合があるためです。

したがって、タブバーコントローラを設定し、個別のナビゲーションコントローラを各タブに接続してから、ルートビューとしてビューコントローラ(view、tableview、pageControllerなど)を各ナビゲーションコントローラに接続します。次に、UIをセットアップし、カスタムサブクラスを割り当ててから、UIをサブクラスのプロパティに接続します。各ストーリーボードはそのサブクラスの新しいインスタンスを作成するため、ストーリーボード内の複数のViewControllerでサブクラスを再利用できることを忘れないでください。各タブ機能で物事を正しく管理するには、追加のロジックが必要になる場合があります。

コードはありません。ちょうど私の.02明けましておめでとうございます。

于 2013-01-03T01:54:28.563 に答える