Search code examples
iphoneuinavigationcontrollerthree20

View controller is drawing under my navigation bar after popping ttthumbsviewcontroller


I'm implementing the TTThumbsViewController from the Three20 project and things are finally starting to take shape. I push the TTThumbsViewController from the current view controller by just pushing it onto the current stack and animate the transition (common navigation controller push).

My problem is that when I pop the TThumbsViewController view controller, the navigation controller is stuck in a mode where its view controllers are drawn UNDER the navigation bar (which is now translucent).

Start

alt text

Push

alt text
(source: ncsu.edu)

Pop

alt text
(source: ncsu.edu)


Solution

  • You need to reconfigure the original style of the status bar, navigation bar & tool bar when your view reappears. You can do this by implementing viewWillAppear: in your view controller:

    - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
    
      UINavigationController* navController = self.navigationController;
      navController.navigationBar.barStyle = UIBarStyleDefault;
      navController.navigationBar.tintColor = [UIColor redColor];
      navController.toolbar.tintColor = [UIColor redColor];
    
      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
    }