美文网首页
iOS 9 <Error>: CGContextRe

iOS 9 <Error>: CGContextRe

作者: DestinyFighter_ | 来源:发表于2015-10-22 17:46 被阅读491次

开发中会遇到这样的问题,控制台打印:

CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

出错原因:设置app的状态栏样式的使用使用了旧的方式,在info.plist里面设置了View controller based status bar appearance为NO,默认为YES,

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

一般是iOS6的时候使用这种方式,iOS7,8也兼容,但是到了iOS9就报了警告。

修改方式:  将View controller-based status bar appearance设置为YES,然后使用新的方式来实现状态栏的样式。

ios7之后的方法:

- (UIStatusBarStyle)preferredStatusBarStyle;

- (UIViewController *)childViewControllerForStatusBarStyle;

- (void)setNeedsStatusBarAppearanceUpdate;

步骤如下:

1.将 View controller-based status bar appearance 删除(默认为 YES),或设置为YES

2.设置rootViewcontroller,如果为viewController,那么重写下面的方法

- (UIStatusBarStyle)preferredStatusBarStyle {   

         return UIStatusBarStyleLightContent;

}

如果rootviewcontroller为navgationController,那么可以在所管理的viewcontroller里写下面的代码

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

或者为navgationcontroller写一个分类

.h

@interface  UINavigationController(StatusBarStyle)

@end

.m

#import "UINavigationController+StatusBarStyle.h"

@implementation  UINavigationController(StatusBarStyle)

- (UIStatusBarStyle)preferredStatusBarStyle {

           return UIStatusBarStyleLightContent;

}

@end

相关文章

网友评论

      本文标题:iOS 9 <Error>: CGContextRe

      本文链接:https://www.haomeiwen.com/subject/pqwwcttx.html