3

独自のコンテナビューコントローラを実装したい。pls、これが私のiPadだと想像してください

ここに画像の説明を入力してください

通常のスプリットビューコントローラの一種ですが、拡張したいのですが、ビュー「B」をタップすると、ビュー「a」の幅をサイズ変更できるはずです。ビュー「C」は表示領域に移動します。

ここに画像の説明を入力してください

たとえば、ストーリーボードには、AViewController(Aビュー用)、BViewController、CViewController、および1つの結合されたビューコントローラー(初期ビューコントローラー)の3つのコンテナービューがあります。結合されたビューコントローラでは、コンテナビューから埋め込みセグエを実装し、次のコードを介してコンテナビュー間の関係を初期化します。

@property ... *aViewController,*bViewController,*cViewController;
    - (void)prepareForSegue:(UIStoryboardSegue *)segue
    sender:(id)sender
    {
    if ([segue.identifier isEqualToString:@"EmbedAViewController"])
    {
    self.aViewController =
    segue.destinationViewController;
    }
    if ([segue.identifier isEqualToString:@"EmbedBViewController"])
    {
    self.bViewController=segue.destinationViewController
    }

   -(void)viewDidLoad
   {
     [super viewDidLoad];
     self.aViewController.bViewController=self.bViewController;
   }

質問1:ストーリーボードを使用して割り当てを実装するのは適切な方法ですか? 質問2:コンテナビューにはどのような制限がありますか?これは、addChildViewController APIの視覚的な置き換えですか?いいえの場合、どこで子と親の関係を実装する必要がありますか?prepareForSegueメソッドの結合されたViewControllerで使用する必要があります

 [self addChildViewController:aViewController]; 
    [self.view addSubview:aViewController.view];

質問3:最初にコンテナビューを表示領域の外側に配置するにはどうすればよいですか?

私がどこかで間違いをしたり、基本的な概念について大きな誤解を持ったりした場合でも、私を殴らないでください。私はたくさんのgoogle-fooをしました、私は本当に助けていただければ幸いです。よろしくお願いします!

編集:
私はそれらすべての間に関係を設定したいと思います。「B」ビューのコンテンツは「A」に依存し、「C」ビューのコンテンツは「B」に依存します。

4

1 に答える 1

5

私はあなたがいくつかの誤解を持っていると思います。ストーリーボードにコンテナビューコントローラを実装する場合は、コードで何もする必要はありません。1つのコントローラー、つまり結合ビューコントローラーと呼んでいるコントローラーから始めて、3つのコンテナービューをドラッグします。最初は、すべてが完全な高さになるようにサイズを設定し、メインビューにすべて並べて配置することをお勧めします。次に、サイズインスペクターを使用してサイズと位置を変更し、Cのビューがコンバインコントローラービューの右端から開始するようにします。これにより、最初は画面外になります。埋め込みセグエを使用して、3つのビューコントローラーをそれぞれのコンテナービューに自動的に接続します。これらの3つのコントローラーはすべて、結合されたコントローラーと同時にインスタンス化されます。

于 2013-02-16T17:47:44.127 に答える