UIAlertController状态栏不会变暗和着色颜色问题

Dan*_*Dan 6 objective-c ios ios8 uialertcontroller ios9

我正在从使用迁移UIAlertView到UIAlertControlleriOS 8中的介绍.但是,我看到一些奇怪的视图问题,我在使用时没有看到UIAlertView.首先,在显示警报时,状态栏文本不会变暗:

状态栏不变暗

此外,在显示状态栏后,UINavigationController现在将后面的箭头设置为应用程序的tintColor,而不是为我设置的白色tintColor UINavigationBar.这会影响UINavigationBar整个应用程序中的其他元素,例如添加(+)按钮和编辑按钮.在显示之前UIAlertController,所有条形按钮项目都显示为白色.

后退按钮的色调错误

错误的色调用于编辑和后退按钮

我在这里不知所措.我显示警报的代码非常简单:

UIAlertController *view = [UIAlertController alertControllerWithTitle:VALIDATION_TITLE message:text preferredStyle:UIAlertControllerStyleAlert];
[view addAction:[UIAlertAction actionWithTitle:VALIDATION_BUTTON_OK style:UIAlertActionStyleDefault handler:nil]];
[self presentViewController:view animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 1

因此,在处理显示时,UIAlertControllers当我没有显示句柄时UIViewController,我在 stackoverflow 上找到了以下代码:

/sf/answers/2165894951/

如果我使用该show:方法,该方法会调用一个新窗口UIWindow并从该新窗口中显示UIAlertController,那么我不会遇到上面显示警报时看到的任何 UI 副作用。

如果有人知道为什么会发生这种情况,请仍然回答这个问题,因为这是一个相当hacky的解决方法!