Как скрыть UINavigationBar для моего первого просмотра - PullRequest
4 голосов
/ 24 августа 2011

Я хочу скрыть UINavigationBar, который автоматически загружается с проектом Navigation только для первого просмотра, и мне интересно, как я могу заставить эту работу работать.

Я пытаюсь сделать это так

// RootViewController.m

#import "mydelegate.h" //-- this is where the view controller is initialized

//...

- (void)viewDidLoad
{
    [super viewDidLoad];
    navigationController *navController = [[navigationController alloc] init];
    [navigationController setNavigationBarHidden:YES animated:animated];
}

//.....

Однако я получаю ошибки, потому что, по-моему, я не вызываю navigationController напротив файла делегата должным образом или просто невозможно вызвать его, как если бы вы были методом из другого класса.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

8 голосов
/ 24 августа 2011

Здесь есть пара неправильных вещей.

  1. Вы должны получить доступ к навигационному контроллеру, который представляет ваш контроллер представления, используя self.navigationController. Ваш фрагмент кода создает новый UINavigationController; сокрытие этого бара вам ничего не даст.
  2. Вместо того, чтобы скрывать панель навигации в viewDidLoad, вы должны скрыть ее в viewWillAppear:. Вы можете скрыть панель навигации в viewDidLoad, и панель навигации будет скрыта при первоначальном представлении, но если вы нажмете другой вид, который представил панель навигации, и нажмете кнопку «Назад», панель навигации останется видимой ,

Ваш viewWillAppear: должен выглядеть примерно так:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

А методы viewWillAppear: в других контроллерах представления, которые вы нажимаете на этом контроллере навигации, должны отображать или скрывать панель навигации соответствующим образом.

6 голосов
/ 24 августа 2011

Вы обращаетесь к правильному экземпляру UINavicationController? Вы можете получить доступ к UINavigationController через self.navigationController из любого UIViewController, который был добавлен в его стек.

В противном случае, может быть, это поможет: iPhone скрыть панель навигации только на первой странице

0 голосов
/ 15 апреля 2014

iPhone скрыть панель навигации только на первой странице

Попробуйте этот ответ.Это решило проблему для меня.

У меня тоже была проблема с панелью навигации.Я мог заставить это исчезнуть, но я не мог заставить это появляться снова, когда это было необходимо.Эта ссылка объясняет, как вы можете решить эту проблему, просто включив ее в viewWillAppear и выключив в viewWillDisappear.

...