うわー、私は大きな疑問を投げかけました!ストーリーボードのサブビュー(別のView Controller)内のボタンから新しいView Controllerをプッシュするには
私は別のビューコントローラ(メインVC)内で "ContentView"と呼ばれるビューコントローラを持っています。メインVCには、ストーリーボードを使用して作成されたナビゲーションコントローラがあります。 contentViewは、Segmented Controlが持つオプションに応じて3つの異なるView Controller(vc1、vc2、vc3)をロードします。したがって、質問は次のようになります:サブビュー(vc2)の1つのボタンから、ユーザーがセグメント化されたコントロールからオプションを選択すると表示されるボタンから、新しいView Controllerをロードするにはどうすればよいですか?
私は私のストーリーボードに表示ビューコントローラ(VC2)を持っているが、ナビゲーションコントローラがメインVC上にあるため、明らかに私はVC2' ファイルの所有者に、ボタンにアクションを接続することはできません。
は、私は次のコードでそれにアクセスしようとしました:
AppDelegate *del = (AppDelegate *)[UIApplication sharedApplication].delegate; UINavigationController *navigationController = (UINavigationController*)del.window.rootViewController; DetalleMisMarcas *detalleMarcas = [[DetalleMisMarcas alloc] initWithNibName:@"DetalleMarcas" bundle:nil]; [navigationController pushViewController:detalleMarcas animated:YES];
しかし、それは動作しません。
私はこのフォーラムから解決策を見つけようとしましたが、私は運がなかった。ほとんどの場合、Xcode 4.2にはないメインウィンドウの存在が考えられます。
最後に、私は3つのサブビューをロードする方法は、ここにある:
-(IBAction)segmentCtrlChanged:(id)sender {
UISegmentedControl *seg = sender;
if (seg.selectedSegmentIndex == 0)
{
MMViewController *mm= [self.storyboard instantiateViewControllerWithIdentifier:@"MMView"];
mm.view.frame = CGRectMake(0, 0, 320, 240);
[contentView addSubview:mm.view];
}
else if (seg.selectedSegmentIndex == 1) {
MPViewController *mp = [self.storyboard instantiateViewControllerWithIdentifier:@"MPView"];
mp.view.frame = CGRectMake(0, 0, 320, 240);
[contentView addSubview:mp.view];
}
}
-(IBAction)mainSubView:(id)sender
{
MMViewController *mm = [[MMViewController alloc] initWithNibName:@"MTView" bundle:nil];
[contentView addSubview:theMTView];
mm.view.frame = CGRectMake(0, 0, 320, 240);
}
任意のアイデア?
ありがとうございますが、コンテンツコントローラー(vc1、vc2、vc3)をcontentViewという別のビューから読み込むのに問題はありません。 contentViewはメインビューからすべてのビューを独自のV Cで占有せず、ビューの最下部のみを占有します。問題は、各ビューコントローラ(vc1、vc2、vc3)のコントロールが、メインビューのサブビューであるcontentView内にあることです。だから私がしたいのは、新しいビューコントローラをメインビューにプッシュすることですが、メインビュー内に別のビューコントローラ(vc1またはvc2またはvc3)を持つボタンから押します。 – naSh
申し訳ありませんが、あなたが何をしようとしているのかがはっきりしていませんでした。その場合、デリゲートの作成、メインビューへの指示、サブビューへの追加について試してみましたか?それはうまくいくかもしれない。 – Canopus