转载请注明出处!!!

  今天我在写一个弹出框的时候遇到了一个奇怪的问题。一般情况下,我们为了保证弹出框在界面的最上面都是直接在keywindow上直接加一个蒙版。但是今天写的小demo中蒙版不出现。蒙版上添加的弹出提示也就不显示了。这是为什么?

获取keyWindow的方法,我们一般如下所写:

UIView *darkView = [[UIView alloc] init];
darkView.frame = (CGRect){0, 0,[UIScreen mainScreen].bounds.size};
darkView.backgroundColor = [UIColor colorWithRed:46 /255.0 green: 49 /255.0 blue:50 /255.0 alpha:1.0];
darkView.alpha = 0.5; UIWindow *appWindow = [[UIApplication sharedApplication] keyWindow];
[appWindow addSubview:darkView];

   就这样我就在viewDidLoad中创建个蒙版。结果不出现任何东西。这是为什么?

后来我发现keywindow为nil。

然后我开始打印keywindow,发现在viewDidLoad中获取的keywindow为nil,在viewWillAppear中获取的才不为nil。这就有些奇怪了。为什么之前在工程中在viewDidLoad中获取的keywindow不为nil?

原来在新建的工程中,没有导航栏。viewDidLoad中获取的keywindow为nil,在viewWillAppear中获取的才不为nil。如果是有导航栏的工程中viewDidLoad中获取的keywindow不为nil。

今天把这个问题记录一下,如果有遇到同样问题的可以看一下。

关于keywindow的一个小问题的更多相关文章

  1. Redola.Rpc 的一个小目标

    Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标:20000 tps. Concurrency level: 8 threads Complete requests: 20000 ...

  2. UniversalImageLoader的一个小问题

    最近在使用UniversalImageLoader时遇到了一个小问题,多个地方同时通过ImageLoader.getInstance().loadImage(url, new ImageSize(dp ...

  3. 与大家分享robotium一个小问题。Test run failed:Instrumentation run failed due to 'java.lang.ClassNotFoundException'

    今天和大家分享robotium一个小问题. 我们在运行自已经搭好的框架时,有可能会出现一个找不到类的错误(如上图所示). 问题是重签名工具给出的activity有误,这时我们可以用Appt命令查看重签 ...

  4. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  5. 关于SQL Server镜像的一个小误区

    昨天晚上突然接到客户的电话, 说在配置了镜像的生产环境数据库下修改 “已提交读快照” 选项的时候报错, 需要先取消镜像然后再重新搭建.悲催的是这是个近TB的数据库,问我有没有什么快速的方法.于是我就问 ...

  6. 先定一个小目标,自己封装个ajax

    你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...

  7. 快速掌握iOS API的一个小技巧

    快速掌握iOS API的一个小技巧 周银辉 iOS SDK和Developer Library中提供了各个类以及函数的帮助文档,这很棒,但要想了解整个库的大体结构(比如UIKit下有哪些类,他们的继承 ...

  8. Python2 下 Unicode 的一个小bug

    关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题). 在有时候我们去爬取网页或者调用一些第三方库获取文本的时候, ...

  9. 用android去写一个小程序

    前言: 软工的一个小作业:实现"黄金分割小游戏", 需要结对编程,队友:陈乐云    共用时两天. 早期思路设计: 采用键值对的形式,以Map作为存储结构.优点:能够将数据与用户对 ...

  10. js中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...

随机推荐

  1. linux基础版本随笔

    文件和目录常用的命令 ls 命令下 -a  :显示指定目录下所有子目录与文件 以及隐藏的文件 -l  : 以列表的方式显示文件的详细信息 -h  : 配合 -l显示文件的大小 通配符的使用: * ? ...

  2. 计蒜客 A2285 / 2019ICPC徐州 H - Yuuki and a problem

    右转学倍增值域分块 直接在神秘数的做法上大力树套树是 naive 的,考虑将值域分块的做法代入优化. 对于一个块 \([2^{k}, 2^{k+1})\) 内最小的数 \(m\),如果当前可以表示出的 ...

  3. CMake 实践 小结

    网上已经有很多的CMake的总结也好博客也好. 全当个人的记录.如果有错误务必留言. what is CMake? 一般来说就是一个自动生成makefile的工具.--脚本语言. why learn ...

  4. 生成 cone(锥体)

    简介 生成 圆锥 代码 // CreateCone.cpp: 定义控制台应用程序的入口点. // #include <iostream> #include <OpenMesh/Cor ...

  5. 算法设计与分析 Devide and conquer 数学推算

    简介 递推式 搞了很久 发现是一个公式没有使用 TIP 有空把递推过程写出来

  6. LINGO 解线性方程 例子

    简介 没有什么比一个例子更好讲解Lingo的了,不行那就两个... ... Question 已知某种商品6个仓库的存货量,8个客户对该商品的需求量,单位商品运价如下所示,试确定6个仓库到8个客户的商 ...

  7. 【CompletableFuture 终极指南】从原理到生产实践

    引言:异步编程的演进之路 在当今高并发.分布式系统盛行的时代,异步编程已成为现代Java开发的必备技能.Java 8引入的CompletableFuture不仅解决了传统Future的阻塞问题,更提供 ...

  8. 自建 Claude Code 镜像服务,打造高可控、安全稳定的 AI 助手

    自建 Claude Code 镜像服务,打造高可控.安全稳定的 AI 助手 -- 推荐项目 claude-relay-service 原创不易,欢迎点赞.收藏.关注! 近期热度迅速攀升的 AI 编码助 ...

  9. RestCloud ETL社区 八月精选问答

  10. SciTech-AV-Audio-Music-Theory: Dance + 身体使用 汇编 + 乐理及声乐感知 pitch +tempo + form + beat + timbre + percussive + rhythmic + harmonic + texture

    Dance + 身体使用 汇编 特别注意: 心神: 轻松.专注.聚精会神. 大脑: 珍惜爱护"脑力",不可"过度用脑"."德智体美劳"全面发 ...