【问题标题】:Appirater for ios 7 deprecation of "UIStatusBarStyleBlackOpaque"Appirater for ios 7 deprecation of "UIStatusBarStyleBlackOpaque"
【发布时间】:2014-02-02 05:06:38
【问题描述】:

当我在 appirater 的源代码中遇到这样一个事实时,我试图更新我的 ios 7 应用程序:设置“UIStatusBarStyleBlackOpaque”的调用已被弃用。想知道是否有人找到了快速解决方法。而且我正在使用最新版本的 Appirater。

Appirater 来源是here

这是它抛出标志的代码:

+ (id)getRootViewController {
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
if (window.windowLevel != UIWindowLevelNormal) {
    NSArray *windows = [[UIApplication sharedApplication] windows];
    for(window in windows) {
        if (window.windowLevel == UIWindowLevelNormal) {
            break;
        }
    }
}

for (UIView *subView in [window subviews])
{
    UIResponder *responder = [subView nextResponder];
    if([responder isKindOfClass:[UIViewController class]]) {
        return [self topMostViewController: (UIViewController *) responder];
    }
}

return nil;
}

【问题讨论】:

  • 您在代码中的哪个位置设置了“UIStatusBarStyleBlackOpaque”?此外,您还可以使用 Apple 在 iOS 7 中引入的其他类型的状态栏样式。
  • “返回零;”以错误突出显示

标签: objective-c ios7 deprecated


【解决方案1】:

注意——你应该返回一个对象(id、UISomething、int)而不是 nil。

特别是当方法名称是 getRootViewController- 它应该返回一个从名称解释的 UIViewController,而不是一个 nil- 在 any 情况下。

【讨论】:

  • 我担心会破坏代码,因为这是一个不是我编写的类。我也很缺乏经验,不明白你的意思。 UIViewController 与 UIStatusBarStyleBlackOpaque 的错误有什么关系?
  • 我说的是方法。如果我没记错的话,这个名称和类型的方法不应该返回 nil。至于UIStatusBarStyle,我做个dummy app试试看。
猜你喜欢
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多