4
votes

I have a navigation controller in a tab bar controller. When I push a new view controller I want to show the toolbar. I'm doing that like this from the pushed view controller.

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

This works but the toolbar slides up from it's normal position where the tab bar is to go above it. I want it to appear without this "slide up" animation above the tab bar. Is that possible?

Here is my setup. The "slide up" animation occurs when pushing from view controller 1 to view controller 2. I only want the toolbar to appear in view controller 2.

[Tab Bar Controller]
  - [Navigation Controller]
     - [View Controller 1] -> Push -> [View Controller 2]
4
Can post enough code to reproduce the issue?Shoaib
stackoverflow.com/a/23269013/384309 this is a working answerAlistra

4 Answers

2
votes

Put your navigation controller embedded inside in your tab bar controller instead of the other way around.

So the tab bar will have the Nav bar as one of its view controllers

2
votes

Have you tried destinationVC.hidesBottomBarWhenPushed = YES;?

Apple docs

2
votes

Make sure that in the storyboard all the view controllers have the "hide bottom bar" property unchecked

enter image description here

2
votes

Move [self.navigationController setToolbarHidden:NO animated:NO]; from viewWillAppearto viewDidloadthat should work.