как скрыть панель навигации, когда я нажимаю от контроллера навигации? - PullRequest
39 голосов
/ 24 октября 2009

как скрыть верхнюю панель в UIViewcontroller , когда я нажимаю с контроллера навигации, используя pushViewController ? любая помощь, пожалуйста?

Ответы [ 3 ]

105 голосов
/ 24 октября 2009

Поместите этот код в контроллер вида, для которого вы хотите скрыть панель навигации.

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

И вы также можете добавить это туда, в зависимости от ваших потребностей:

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}
9 голосов
/ 31 мая 2017

Вот как это сделать в Swift 3 :

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

P.S. Я обнаружил, что если вы установите анимацию на false, при нажатии появляется черная полоса. Но когда он установлен на true, он гладкий как шелк!

0 голосов
/ 01 октября 2014

для iOS 8 Может быть, эта работа может обойтись

CATransition* transition = [CATransition animation];
        transition.duration = 0.3;
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromRight;
        [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
        [self.navigationController setNavigationBarHidden:TRUE animated:FALSE];
        [self.navigationController pushViewController:productViewObj animated:FALSE];
        [productViewObj.navigationController setNavigationBarHidden:TRUE animated:FALSE];
        [productViewObj release];
...