So i am styling all my views using the apprearance api.
F.e. i style my UINavigationBar using:
[[UINavigationBar appearance] setBackgroundImage:navigationBarBgImage forBarMetrics:UIBarMetricsDefault];
i want to use the advantage of the appearance api of styling all my UINavigationBars in one single place (because i have multiple of them), so i don’t want to do some subclassing only because of styling reasons.
i also popup some MFMessageComposeViewControllers and a SLComposeViewController to post to imessage or facebook.
my problem here is, if i try to select albums on facebook or select contacts on imessage modalview, this happens:

see the recursive description of the imessage modal view:
$0 = 0x1f1f1320 <UIWindow: 0x1e5c8900; frame = (0 0; 320 568); layer = <UIWindowLayer: 0x1e5c8a00>>
| <UILayoutContainerView: 0x1e592860; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x1e592910>>
| | <UINavigationTransitionView: 0x1f1c88a0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1f1c8960>>
| | | <UIViewControllerWrapperView: 0x1f1ee090; frame = (0 20; 320 548); autoresize = W+H; layer = <CALayer: 0x1f2f9560>>
| | | | <UIView: 0x1f2f3d20; frame = (0 0; 320 548); autoresize = W+H; layer = <CALayer: 0x1f2f3d80>>
| | | | | <_UISizeTrackingView: 0x1f2effd0; frame = (0 0; 320 548); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1f2f00b0>>
| | | | | | <_UIRemoteView: 0x1f2f01e0; frame = (0 0; 320 568); transform = [0.5, -0, 0, 0.5, -0, 0]; userInteractionEnabled = NO; layer = <CALayerHost: 0x1f2f0330>>
any ideas whats the best to switch back there to default mode?
Your best bet is really to subclass one thing or the other. Otherwise you’ll be undoing styles everywhere. I’ll do it in one of two ways:
One is to subclass
UINavigationControllerand style theUINavigationBarcontained by that class:Another method is to subclass
UINavigationBarinstead, set the appearance for that class, and instantiate yourUINavigationControllerthis way: