我目前正在旋转UIAppearance
修饰符*的复杂网络,并且遇到了问题。
我使用FlatUIKit的自定义UIBarButton
外观协议(protocol)会导致MFMailComposerViewController
提示并停止工作。
因此,不是使用UIAppearance
的whenContainedIn
方法指定导致修改发生的类,有没有办法排除某些类,即“何时不包含在其中”?
*我正在谈论的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/