在创建一个新的project后,在ViewController中添加如下代码:

- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.self.view.backgroundColor = [UIColor redColor];UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];view.backgroundColor = [UIColor brownColor];[[UIApplication sharedApplication].delegate.window addSubview:view];[[UIApplication sharedApplication].delegate.window bringSubviewToFront:view];
}
复制代码

理所当然的认为,在当前屏幕上会是棕色的View盖在红色ViewController上面。可是到了运行的时候发现屏幕就显示了一个红色的View。

棕色的View没添加到?不太可能,程序也能运行到这里

window是nil?更加不可能,为nil的话还怎么添加ViewController

打开层次视图的时候,会发现其实棕色的view是被盖住了:

但是如果为这个ViewController添加一个Nav什么的,运行又是预想中的效果。

于是乎只能猜测,当单个ViewController作为rootViewController时,首先会先执行viewDidLoad方法,将整个View加载完毕后,才会添加到window上面。

转载于:https://juejin.im/post/5a30e378f265da432e5bffe3

UIWindow的rootViewController的问题相关推荐

  1. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  2. 怎样在swift中创建CocoaPods

    本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene 原文:How to Create CocoaPods with Swift 你可能对一些比较著名的开源 ...

  3. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇-UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  4. IOS之UITabBarController

    在学习IOS开发过程中,针对于UITabBarController的使用也不少出现,UITabBarController和UINavigationController类似,UITabBarContro ...

  5. ios 界面间跳转方法总结

    方式一:Storyboard的segues方式 鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可 优点:操作方便,无代码生成,在storybo ...

  6. iOS10 UI教程基础窗口的内容与设置起始窗口

    iOS10 UI教程基础窗口的内容与设置起始窗口 iOS10 UI教程基础窗口的内容与设置起始窗口,本章我们从iOS10开发中UI的基础知识开始讲解,其中包括了窗口.视图以及UI层次结构和Views的 ...

  7. UIPickerView详解

    一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id< ...

  8. iOS UI基础-11.0 UINavigationController

    导航控制器 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的"设置"应用 UINavigationCon ...

  9. iOS程序启动过程笔记

    CHENYILONG Blog 笔记 一.iOS程序的完整启动过程(有storyboard) 1.先执行main函数,main内部会调用UIApplicationMain函数 2.UIApplicat ...

最新文章

  1. session无法传值解决方案!
  2. 博客园去除文章页底部的推广链接
  3. date工具类 DateUtils.java
  4. MATLAB每个字母等宽,等宽文本文件的导入选项对象
  5. 海康linux 密码忘记,linux下调用海康sdk
  6. 桌面整理之DeskGo
  7. 什么是数据库?以及主流的数据库有哪些
  8. 中国象棋马走日(要求打印每一种走法) — 递归
  9. 杭州电子科技大学acm--2012
  10. Pycharm2018.2永久破解
  11. 毛星云opencv7.1之边缘检测,滤波器和步骤介绍
  12. 11 Tornado - 使用模板
  13. 反感料理包的真正原因,正在被“恶心”掩盖
  14. mac mini安装ubuntu系统
  15. 如何通过角色管理来重隐藏ALV某些字段
  16. 原来谷歌是这样构建 Docker 镜像的!
  17. hmcl电脑java我的世界启动器_hello minecraft下载
  18. 2016 Google hosts 持续更新【更新于:2016-06-15】
  19. Agora.CGI跨站脚本执行漏洞(CVE-2001-1199),该漏洞应该怎么修复呢?
  20. 大疆无人机+PhotoScan 来完成航拍三维模型

热门文章

  1. jQuery读取和设定KindEditor值的方法
  2. Duplicate entry 'xxx' for key 'xxx'
  3. 世事无常,深信服及其他
  4. 12.15daily_scrum
  5. 用 JAVA 开发游戏连连看(之四)添加更多的功能
  6. 由一个网站注册验证码带来的思考
  7. C#连接SQL Server数据库
  8. 自动驾驶算法-滤波器系列(五)——高级运动模型在UKF中的应用
  9. 【Ceres基本使用方法】使用Ceres拟合曲线求解最小二乘问题
  10. oracle中表空间实例,oracle的表空间实例详解