2009-04-25 11 views
0

私はビュー上にボタンがあります。私がクリックすると、別のビューがロードされるはずです。これまでのところ、私はこれを持って、ボタンは、このメソッドを呼び出します。ナビゲーションコントローラにギャップ

-(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をロードすることであるが、上部に隙間がありますステータスバーのサイズの、私は以下のビューを見ることができます。どんな助け?ナビゲーションコントローラを含む新しいビューをロードする正しい方法は何ですか?

ありがとうございました!私は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]; 
+0

最初のビューにステータスバーがありますか?たぶん、最初のビューと2番目のビューのスクリーンショットが役に立ちます。 – Jab

+0

私は自分でステータスバーを追加しませんでした。これは、すべてのアプリがデフォルトで使うステータスバーと同じです。 –

答えて

5

私は後に置くことで、この問題を解決:

[optionsRootController pushViewController:myOptions animated:NO]; 

このライン:

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

ニースと簡単に!

1

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

+0

同じ結果が得られます:( –

-1

として表現されるだろうと思う

関連する問題