2012-03-19 3 views
0

Я разрабатываю приложение iOS 4 с последними версиями SDK и XCode 4.2.Панель навигации 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, после его выделения.
  2. Установка [navController setNavigationBarHidden:YES animated:YES]; на viewWillAppear: на каждом viewController, что я pust на navController.
0

Я думаю, что навигационная панель должна быть скрыта на виду, а не на контроллере.

+0

Да, но если я это сделаю, я увижу свободное пространство, занимаемое навигационной панелью. Другими словами, я скрываю панель навигации, но она оставляет пустое пространство (представление не подходит для всего экрана). – VansFannel

+0

Убедитесь, что для режима просмотра autoResizingMask в представлении контроллера предусмотрена возможность гибкой высоты. – jsd

2

попробовать

[navController setNavigationBarHidden:YES animated:NO] 

Док является here.

+1

Нет, это не работает. Благодарю. – VansFannel

+1

Не самое чистое решение, но попробуйте вызвать [self.navigationController setNavigationBarHidden: YES animated: NO] в viewWillAppear класса ViewController. –

Смежные вопросы