0

ビューにボタンがあります。それをクリックすると、別のビューが読み込まれます。1つはnovigationコントローラーです。これまでのところ、ボタンはこのメソッドを呼び出します。

-(IBAction)loadOptionsView:(id)sender {

     if (self.optionsRootController == nil) {

          //optionsRootController is declared as: UINavigationController *optionsRootController;
          optionsRootController = [[UINavigationController alloc] init];

          //Options is a UIViewController
          Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil];
          [optionsRootController pushViewController:myOptions animated:NO];
          [myOptions release];
     }

     [self.view addSubview:optionsRootController.view];

}

ボタンをクリックすると、現在の画面の上部にxibファイルOptionsMenuが読み込まれますが、ステータスバーのサイズの上部にギャップがあるため、下のビューを確認できます。何か助けはありますか?ナビゲーションコントローラーを含む新しいビューをロードする正しい方法は何ですか?

皆さん、ありがとうございました!

4

3 に答える 3

5

私は後に置くことによってこの問題を解決しました:

[optionsRootController pushViewController:myOptions animated:NO];

この行:

[optionsRootController.view setFrame: [self.view bounds]];

素晴らしくて簡単!

于 2009-04-26T19:27:05.310 に答える
1

UINavigationControllerの指定された初期化子は

  - (id) initWithRootController:(UIViewController *)rootController

したがって、上記のコードは次のように表現する方が適切です。

  //optionsRootController is declared as: UINavigationController *optionsRootController;

  //Options is a UIViewController
  Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil];
  optionsRootController = [[UINavigationController alloc] initWithRootController: myOptions];
  [myOptions release];
于 2009-04-25T16:09:40.613 に答える
-1

ペン先のVIewは、画面全体に適したサイズですか?IBでシミュレートされたステータスバーをオフにしてみてください。

于 2009-04-25T21:01:20.240 に答える