如何在iOS中不使用UIApprance更改一个类的外观?
我正在使用主题概念来更改应用程序中的UI外观。我正在使用多个主题。我想更改每个视图控制器导航栏的颜色,但除了RegisterViewController。那么我如何才能做到这一点 我尝试了以下代码如何在iOS中不使用UIApprance更改一个类的外观?,ios,objective-c,iphone,xcode,ipad,Ios,Objective C,Iphone,Xcode,Ipad,我正在使用主题概念来更改应用程序中的UI外观。我正在使用多个主题。我想更改每个视图控制器导航栏的颜色,但除了RegisterViewController。那么我如何才能做到这一点 我尝试了以下代码 [[UINavigationBar appearance]setTintColor:[UIColor redColor]]; [[UINavigationBar appearanceWhenContainedIn:[RegisterViewController class] ,nil]setTintC
[[UINavigationBar appearance]setTintColor:[UIColor redColor]];
[[UINavigationBar appearanceWhenContainedIn:[RegisterViewController class] ,nil]setTintColor:[UIColor blueColor]];
您的想法是正确的,但问题是RegisterViewController中不包含导航栏。它包含在UINavigationController中 换句话说,如果您有一个导航控制器和多个视图控制器子项,并且您希望其中一些子项的导航栏色调不同于其他子项,则不能使用外观代理来执行此操作,因为在所有情况下,它都是同一个导航控制器和同一个导航栏。没有区别可言
所以你得换个方式。例如,设置导航控制器的委托以根据前面的视图控制器更改导航栏的色调。您的想法是正确的,但问题是导航栏不包含在RegisterViewController中。它包含在UINavigationController中 换句话说,如果您有一个导航控制器和多个视图控制器子项,并且您希望其中一些子项的导航栏色调不同于其他子项,则不能使用外观代理来执行此操作,因为在所有情况下,它都是同一个导航控制器和同一个导航栏。没有区别可言
所以你得换个方式。例如,设置导航控制器的代理以根据前面的视图控制器更改导航栏的色调。您可以发布一些代码吗?这将是一个很好的选择help@mattNo,我不会为您编写代码。你问为什么它不能和外观代理一起工作,我解释了。我提供了一个替代策略。好的。如你所愿。谢谢你。你能发布一些代码吗?这将是一个伟大的选择help@mattNo,我不会为您编写代码。你问为什么它不能和外观代理一起工作,我解释了。我提供了一个替代策略。好的,如你所愿。谢谢你