项目总结八:项目中UIWindow冲突的解决

项目总结八:项目中UIWindow冲突的解决_第1张图片
网络配图

项目需求:

1、项目中加入手势密码

2、项目中添加紧急通知,如有紧急通知的话显示在页面。

分析:

手势密码是加载在UIWindow上的,而紧急通知的话显示出来最好的方式也是显示在window上,如果两个同时显示的话,会提示,会报找不到'Application windows are expected to have a root view controller at the end of application launch',说明没有找到rootView。

解决办法:

因为在编译的时候会提示编译错误,这里的解决方法是加一个标志位showWindows,目前用的userdefault,写成单例会更好,在启动

1、- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}中设置为no,

2、在手势密码输入验证之后设置为yes,同时发送一个通知

3、在要显示的控制器里面,注册通知,收到通知时,执行方法判断标志位的值,为yes时,判断有没有值要显示

4、当程序进入后台的时候,- (void)applicationDidEnterBackground:(UIApplication *)application{},设置为no,本地保存了标志位,如果不处理,下次从后台直接为yes,引起冲突。

你可能感兴趣的:(项目总结八:项目中UIWindow冲突的解决)