【问题标题】:UIAlertController status bar not dimming and tint color issuesUIAlertController 状态栏没有变暗和着色问题
【发布时间】:2016-05-10 06:40:24
【问题描述】:

我正在从使用UIAlertView 迁移到iOS 8 中引入的UIAlertController。但是,我看到了一些在使用UIAlertView 时看不到的奇怪视图问题。首先,显示警报时,状态栏文本不会变暗:

此外,在显示状态栏后,UINavigationController 中的后退箭头现在设置为应用程序的 tintColor,而不是我为 UINavigationBar 设置的白色 tintColor。这会影响整个应用程序中的其他 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];

【问题讨论】:

  • 当你在警报上按确定时,警报消失,然后后退箭头变暗?你能显示与返回按钮相关的代码吗?
  • 后退箭头实际上并没有变暗;它设置为绿色/蓝色的全局tintColor。后退箭头不会立即显示该颜色,但当我通过底部的标签栏切换并返回屏幕时会显示新的tintColor。确实没有任何与后退按钮相关的代码......它是一个普通的UINavigationController
  • 是在你解除警报之后发生的吗?
  • 是的,但在我离开视图控制器并返回它之前再一次。

标签: ios objective-c ios8 ios9 uialertcontroller


【解决方案1】:

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

https://stackoverflow.com/a/30941356/3434545

如果我使用show: 方法,该方法调用一个新的UIWindow 并从该新窗口显示UIAlertController,则在显示警报时我没有上面看到的任何UI 副作用。

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

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    相关资源
    最近更新 更多