2012-03-19 54 views
0

最新のSDKとXCode 4.2でiOS 4アプリケーションを開発しています。uinavigationcontrollerのナビゲーションバーは常に隠されています

私はUINavigationControllerを使用しており、ナビゲーションバーを表示したくありません。これを行うには、私はこのAppDelegateのコードを使用します

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease]; 
    } 
    else 
    { 
     self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease]; 
    } 

    navController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
    navController.navigationBar.hidden = YES; 

    self.window.rootViewController = navController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

しかし、この行を、navController.navigationBar.hidden = YES;は動作しません。最初のビューコントローラにはナビゲーションバーが表示されませんが、他のビューには表示されます。

ヒント?

答えて

3

私はこの次のことをやって達成した:

  1. navController.NavigationBar.hidden = YESを設定します。 AppDelegateで、それをallocした後。
  2. 私はnavControllerにパストするすべてのviewControllerでをviewWillAppear:に設定します。
0

ナビゲーションバーは、コントローラではなく、ビュー上に非表示に設定する必要があると思います。

+0

はい、それを行うと、ナビゲーションバーが空になっているスペースが空になります。言い換えれば、私はナビゲーションバーを隠しますが、それは空のスペースを残します(ビューは画面全体に適合しません)。 – VansFannel

+0

ビューコントローラのview autoResizingMaskが、柔軟な高さを許可するように設定されていることを確認してください。 – jsd

2

は、docがhereある

[navController setNavigationBarHidden:YES animated:NO] 

を試してみてください。

+1

いいえ、動作しません。ありがとう。 – VansFannel

+1

最善の解決策ではありませんが、 "ViewController"クラスのviewWillAppearで[self.navigationController setNavigationBarHidden:YES animated:NO]を呼び出してみてください。 –

関連する問題