4

複数のView Controllerを並べて表示する必要があるアプリ(分割ビュー)に取り組んでいます。この目的のために、ビューを子ビュー コントローラーとして追加しました。

目的: 1 つの子ビュー コントローラーにナビゲーション バーを表示し、親ビュー コントローラーに既に表示されている別のナビゲーション バーを表示したいと考えています。

問題:ナビゲーション バーが子ビュー コントローラーに表示されません。

編集:親View Controllerのナビゲーションバーも非表示に設定しましたが、子View Controllerが呼び出されると、子View Controllerではなく親View Controllerにナビゲーションバーが表示されます。

子View Controllerを追加するコードは次のとおりです。

    MyChildViewController *childViewController = [[MyChildViewController alloc] initWithNibName:@"MyChildViewController" bundle:nil];

    [self addChildViewController:childViewController];
    [childViewController.view setFrame:CGRectMake(0.0f, 0.0f, self.rightContainerView.frame.size.width, self.rightContainerView.frame.size.height)];
    [self.rightContainerView addSubview:childViewController.view];
    [childViewController didMoveToParentViewController:self];

このコードは正常に機能しており、子ビュー コントローラーは完全に追加されます。それが可能かどうか知りたいですか?

前もって感謝します。

4

4 に答える 4

3

このようにナビゲーションバーを追加します

ここに画像の説明を入力

すべてのView Controllerに表示されます

別の方法:

このコードを appdelegate.m ファイルの didFinishLaunchingWithOptions メソッドに挿入します。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ECViewController * ec = [[ECViewController alloc] initWithNibName:@"ECViewController" bundle:nil];
UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:ec];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;

次の手順に従って、Nib ファイル (ECViewController) を追加します。

1: プロジェクトルートで右クリック

2: 新しいファイルを追加

3: ユーザー インターフェイスに移動します。

4: ビューを選択

5:私の場合、ECViewControllerに付けたView Controller名と同じ名前を付けます。

新しく作成された nib ファイルをクリックします

左側にあるファイル所有者の拳の黄色のボックスをクリックします。control キーワードを使用してドラッグするだけでビューと接続できます。ポップアップが表示されたらビューをクリックします。

次に、ID インスペクターに移動します (左側を見つめてから 4 番目のセクション)。

Class name に自分のクラス名を書いてください テキストボックスが現れました。

これにより、ストーリーボードを使用したくない場合に iOS7 で xib を開くことができます。

ナビゲーションコントローラーを備えたビューコントローラーが必要な場合。

次に、この方法でView Controllerを開きます。

 ECViewController1 *v = [[ECViewController1 alloc]initWithNibName:@"ECViewController1" bundle:nil];

    [self.navigationController pushViewController:v animated:YES];

この編集された回答には遅すぎます。他の誰かの助けになることを願っています。

于 2014-04-08T11:17:15.483 に答える
1

子ビューの y 位置を正しく設定します。

MyChildViewController *childViewController = [[MyChildViewController alloc] initWithNibName:@"MyChildViewController" bundle:nil];

    [self addChildViewController:childViewController];
    [childViewController.view setFrame:CGRectMake(0.0f, 44.0f, self.rightContainerView.frame.size.width, self.rightContainerView.frame.size.height)];
    [self.rightContainerView addSubview:childViewController.view];
    [childViewController didMoveToParentViewController:self];
于 2014-04-08T11:18:28.070 に答える
-1

ナビゲーションバーを手動で追加する必要があるstackoverflowからのリンクを見つけましたが、これに代わるものはありません。

于 2014-04-08T11:54:14.650 に答える