keyWindow与delegate中Window的区别
2024-10-13 08:33:58
keyWindow与delegate中Window的区别
源码:
//
// ViewController.m
// UIWindowRelated
//
// Created by YouXianMing on 14/10/25.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"-------");
NSLog(@"%@", [UIApplication sharedApplication].keyWindow);
NSLog(@"%@", [[[UIApplication sharedApplication] delegate] window]);
} - (void)viewDidAppear:(BOOL)animated {
NSLog(@"#######");
NSLog(@"%@", [UIApplication sharedApplication].keyWindow);
NSLog(@"%@", [[[UIApplication sharedApplication] delegate] window]);
} @end
结果如下图:
从打印结果中可以知道:
keyWindow与delegate中的window其实是一样的,keyWindow的存在的意义,其实就是为了说明当前的window接管了这个控制器的view而已,你可以在keyWindow上加载你自己的建立的view了。
现在提供一个便利的类目^_^:
//
// UIWindow+Window.h
// Window
//
// Created by YouXianMing on 14-10-10.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import <UIKit/UIKit.h> @interface UIWindow (Window) /**
* 返回keyWindow(如果keyWindow有值,代表着你可以给window添加view了)
*
* @return 可以添加view并显示出来的window(如果返回为nil,说明你不能将view添加到window上去显示)
*/
+ (UIWindow *)usableWindow; /**
* 返回window
*
* @return window(你给这个window添加的view很有可能被控制器的view覆盖而显示不了)
*/
+ (UIWindow *)rootWindow; @end
//
// UIWindow+Window.m
// Window
//
// Created by YouXianMing on 14-10-10.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import "UIWindow+Window.h" @implementation UIWindow (Window) + (UIWindow *)usableWindow
{
return [UIApplication sharedApplication].keyWindow;
} + (UIWindow *)rootWindow
{
return [[[UIApplication sharedApplication] delegate] window];
} @end
最新文章
- wepack+sass+vue 入门教程(三)
- Android实现双击事件的两种方式
- 【Beta版本】七天冲刺集结令
- 【poj1067】 取石子游戏
- 查看Linux硬件配置信息
- 自定的 HttpModule 为什么总是执行两次
- Eclipse启动的时候窗口一闪就关的解决办法(转)
- 【BZOJ】【2844】albus就是要第一个出场
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备
- 项目管理工具:Maven使用方法总结
- lc面试准备:Reverse Bits
- Eclipse使用技巧总结(一)
- Elegant Box主题wpdb::prepare() 报错[已解决]
- Codeforces Round #364 (Div. 2)C. They Are Everywhere(尺取法)
- UVA12493 - Stars(求1-N与N互质的个数)欧拉函数
- Entity Framework入门教程(11)---EF6中的异步查询和异步保存
- edit this cookie chrome插件 (HttpAnalyzerStdV3 获取Cookie 后,再用edit this cookie添加cookie)
- Linux内核分析——Linux内核学习总结
- android measure的时候报空指针
- 文档设计也需要坚持DRY原则--支付中心应用部署结构图完善