I’m using the appearanceWhenContainedIn
method on certain UI elements that I want to customise in my iOS 6 app. The problem I found is that none of my customisation
From the docs:
appearanceWhenContainedIn:
...
The appearance proxy for the receiver in a given containment hierarchy.
That actually means that nil-terminated list defines not the list of the container classes for UIBarButtonItem, but container hierarchy from top to bottom, so
[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIToolbar class], nil]
returns appearance proxy for UIBarButtonItem that is inside UINavigationBar, and UINavigationBar in turn is inside UIToolbar.
or
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class],[ViewController class], nil] setTintColor:[UIColor redColor]];
set red tint color for UIBarButtonItems that are in any UIToolBar which are in ViewController class.
So to set appearance for UINavigationBar and UIToolBar separately you'll need 2 separate calls to the +appearanceWhenContainedIn:
method