我目前正在旋转UIAppearance修饰符*的复杂网络,并且遇到了问题。

我使用FlatUIKit的自定义UIBarButton外观协议(protocol)会导致MFMailComposerViewController提示并停止工作。

因此,不是使用UIAppearancewhenContainedIn方法指定导致修改发生的类,有没有办法排除某些类,即“何时不包含在其中”?

*我正在谈论的UIAppearance协议(protocol)用于预定义应用程序委托(delegate)中的对象外观设置。

最佳答案

您可以使用appearanceWhenContainedIn:指定nil修改,这将显示默认外观:

[[UIBarButton appearance] setBarTintColor:[UIColor redColor]];
[[UIBarButton appearanceWhenContainedIn:[MFMailComposerViewController class], nil] setBarTintColor:nil];

从iOS 9 SDK开始,
[[UIBarButton appearance] setBarTintColor:[UIColor redColor]];
[[UIBarButton appearanceWhenContainedInInstancesOfClasses:@[[MFMailComposerViewController class]] setBarTintColor:nil];

可以像这样使用Swift-2:
UIBarButton.appearance().barTintColor = UIColor.redColor()
UIBarButton.appearanceWhenContainedInInstancesOfClasses([MFMailComposerViewController.self]).barTintColor = nil

关于ios - UIAppearance的 "when not contained in",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19408582/

10-09 15:34