4

ストーリーボードに、セグメント化されたコントロールを持つビュー コントローラーがあります。セグメント化されたコントロールは、3 つの異なるタイプの表示からビューを切り替えます。これを行うには、さまざまなビュー要素を非表示/非表示にします。これは機能しますが、Xcode ストーリーボード エディターで編集するのは困難です。作業中のビューの部分に応じてオンとオフを切り替えることができるレイヤーを使用できるようにしたいと考えています。

これを行う方法はありますか?より良い方法はありますか?

アップデート:

私は、3 つのビューを個別の xib ファイルに作成し、必要に応じてビュー コントローラー ビューに読み込むことに傾いています。

4

1 に答える 1

2

1つのストーリーボードファイルに3つの異なるViewControllerを作成し、それぞれにストーリーボードIDを与えることができます。それらをセグエと接続しないでください。次に、コンテナビューを表示する場所にドロップし、自動生成されたViewControllerを削除します。

次に、私にとって次のコードが機能します。

-(void)loadSubviewAtIndex:(NSUInteger)idx;
{
    [self.subviewController.view removeFromSuperview];
    [self.subviewController removeFromParentViewController];

    NSString* subviewIdentifier = [self.subviewIdentifiers objectAtIndex:idx];
    subviewController = [self.storyboard instantiateViewControllerWithIdentifier:subviewIdentifier];
    CGRect frame = self.view.bounds;
    subviewController.view.frame = frame;

    [self.view addSubview:self.subviewController.view];
    [self addChildViewController:self.subviewController];
}

ここsubviewIdentifiersでは、NSArrayであるプロパティと、セグメント化されたコントロールインデックスのストーリーボードIDへの暗黙のマップがありIBOutlet UIViewController* subviewController、コンテナビューをリンクしていると仮定します。セグメント化された制御アクションからこのメソッドを呼び出すだけです。

于 2012-10-06T20:47:17.800 に答える