This is a really odd problem and I haven't seen this before (and barely noticed it, you might have to adjust your monitor brightness for this).
I have a UIViewController, embedded in a UINavigationController. It also has a UIToolbar underneath, nothing too fancy. I set the background color and font of the UINavigationBar and other components in AppDelegate (once), like this:
[[UINavigationBar appearance] setBarTintColor:UIColorFromRGBA(0x013060,1)];
[[UIToolbar appearance] setBarTintColor:UIColorFromRGBA(0x013060,1)];
[[UISegmentedControl appearance] setTintColor:UIColorFromRGBA(0xFFFFFF,1)];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,
[UIFont fontWithName:@"AvenirNext-Regular" size:17.0], NSFontAttributeName,
nil]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; // back button etc. text color
Pretty standard. Now, if I click the FILTER button (see my image), I open up a modal view, it's a segue and has no code, it's auto-wired up in Interface Builder. That works, then I dismiss that modal view controller again and fall back into the main controller.
Unwanted behavior: The UINavigationBar has changed it's background color now, just subtle, but noticably. Expected behavior: Same color as before.
This stays that way until I end the app. Something happens the first time that controller shows up, that doesn't the second, or vice versa.
My viewWillAppear (is the only thing I have code in, no viewDidLayoutSubviews or viewDidAppear code) is basically empty (no visual tampering happening). So it's not happening there.