Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 7 Custom UINavigationBar TitleView moves when Pushing or Popping new View Controller

Tags:

I am using a custom title view for a UINavigationBar with the following code:

// Set a label to the nav bar THLabel *titleLabel = [[THLabel alloc] init]; titleLabel.text = @"Test"; titleLabel.font = [UIFont fontWithName:APP_FONT size:22.0]; titleLabel.frame = CGRectMake(0, 0, 100, 30); titleLabel.textAlignment = NSTextAlignmentCenter; titleLabel.textColor = CUSTOM_LIGHT_BLUE; titleLabel.strokeColor = kStrokeColor; titleLabel.strokeSize = kStrokeSize; self.navigationItem.titleView = titleLabel; 

The problem is that when presenting a new viewcontroller and then returning to the original view controller this custom view shifts and then re-centers itself. Please see the video for a demonstration of that.

Please see the video here: https://www.youtube.com/watch?v=961CCVQmpJM&feature=youtu.be

I have disabled autoresizing of every subview for the navigation controller with both the storyboard and in code for each view controller:

    // Set the navigation bar hidded on the log in view     UINavigationController* mainViewController = (UINavigationController*)self.appDelegate.window.rootViewController;     [mainViewController setNavigationBarHidden:YES];     [[mainViewController navigationBar] setAutoresizesSubviews:NO]; 

However it still resizes! How can I stop this - what am I doing wrong? Thanks!

like image 805
PhilBot Avatar asked May 03 '14 23:05

PhilBot


1 Answers

It's reproducible for me only if I place setting titleView code in viewWillAppear. Moving it to viewDidLoad fixes the issue

like image 91
Alex Peda Avatar answered Oct 23 '22 20:10

Alex Peda