iOS 5中的样式:UINavigationController*除非*在PopOver中

Bes*_*esi 4 iphone cocoa-touch objective-c ios

我正在使用自定义图像为我的UINavigationController设置样式,但是,这在Popover中看起来很糟糕,有没有办法只为导航控制器执行此操作,而这些控制器不在弹出窗口中?

我目前在我这样做AppDelegate.m:

- (void)applyCustomStyling{
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"TitleBar.png"] forBarMetrics:UIBarMetricsDefault];
    [[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"TitleBar.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
}
Run Code Online (Sandbox Code Playgroud)

所以,如果你不相信它看起来很糟糕:

http://i.minus.com/joDeixTP7XLpl.png

它应该是这样的(UIPopover-default):

http://i.minus.com/i97ORJTj5pjZK.png

Gre*_*tin 7

您可以使用appearanceWhenContainedIn1根据控制器层次结构更精细地控制外观:

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]
                         setBackgroundImage:nil 
                              forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

  • 这很有效,谢谢!所以我这样做:`[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class],nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];` (2认同)