user141302
user141302

Reputation:

how to hide navigationbar when i push from navigation controller?

how to hide top bar in UIViewcontroller when i push from navigation controller using pushViewController ? any help please?

Upvotes: 46

Views: 38292

Answers (3)

dustinrwh
dustinrwh

Reputation: 926

Here's how to do it in Swift 3:

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

P.S. I found that if you set animated to false, a black bar appears on push. But when it is set to true it's smooth as silk!

Upvotes: 14

Zahur
Zahur

Reputation: 181

For iOS 8 May be this work around could work it

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];

Upvotes: 1

Ed Marty
Ed Marty

Reputation: 39690

Put this code in the view controller you want to hide the navigation bar for.

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

And you may also want to stick this in there, depending on your needs:

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

Upvotes: 117

Related Questions