ios – 真的很奇怪的应用程序颜色行为?

在appDidFinishLaunchingWithOptions上,我使用以下代码对我的整个应用程序进行着色.
self.window.tintColor = [UIColor otfRedColor];

这样做完美,当我的应用程序加载时,所有的导航栏都是红色的. A是我的根视图控制器.

我有3个视图控制器a,b和c. A拉一个b的模态演示视图,拉出c的完整模态视图.当C被拉起时,导航栏上的条形按钮项目都是灰色的,这不应该发生,因为在应用程序委托调色窗口之后,我没有以任何方式改变任何色调或颜色.然后我使用

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

关闭VC c和b,但现在我的ENTIRE应用程序是灰色的.自从应用程序委托以来,我还没有使用任何色调代码,为什么会发生这种情况?再次从A到B,导航栏的项目仍然是红色的?

从A开始上拉视图控制器B的代码

AthleteAdd *addAthlete = [self.storyboard instantiateViewControllerWithIdentifier:@"addAthlete"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addAthlete]; 
addAthlete.delegate = self;
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:navigationController animated:YES completion:nil];

从B提取C的代码

MedicalReleaseVC *medRelease = [self.storyboard instantiateViewControllerWithIdentifier:@"showMedRel"];
    medRelease.delegate = self;
    [self presentViewController:medRelease animated:YES completion:nil];

有人知道为什么会发生这种情况,还是有一个想法?我已经尝试将第三个视图控制器分为红色3种不同的方式,它仍然保持灰色,然后当所有内容都被忽略时,我的整个应用程序都是灰色的.请帮忙!!

编辑:

如果它有帮助,我解决这个问题的方法是在我的appdelegate.m中设置以下内容

self.window.tintAdjustmentMode = UIViewTintAdjustmentModenormal;

解决方法

我认为这是iOS7处理打开和关闭表单和展示位置时的tintAdjustmentMode的错误.我看到这个错误发生在苹果的本地邮件应用程序,其中条形按钮项目变灰色,或者反过来,一旦pop pop出现,它们就不再变成灰色了.

为了进一步调试,我建议将您的一个视图(或窗口直接)子类化并实现tintColorDidChange.记录tintAdjustmentMode的值.我担心这是导致你的灰色问题的原因.

一个解决方案是强制UIViewTintAdjustmentModenormal,但是当打开一个popover或一个工作表时,这样做的效果就不会变暗.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...