2 qq 29574501 qq_29574501 于 2016.03.23 14:21 提问

iOS 在viewDidLoad里面添加一个view,并添加在window上,结果发现显示不出来
ios

对象是有存在的,只不过是被压到了self.view的下方。

为什么直接viewDidLoad里面往window添加会这样。

解决的方法是在视图全部加载完之后,在往window上添加,这样就能显示在最前面了。

这是为什么?

5个回答

u011958730
u011958730   2016.03.24 14:28
我的可以啊!   UIWindow *window = [UIApplication sharedApplication].keyWindow;
UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
[lable setBackgroundColor:[UIColor redColor]];
[window addSubview:lable]; 把这行代码放在viewdidload最后 试试
liu1347508335
liu1347508335   2016.03.24 15:24

加个背景色或者点击这个按钮看看视图层次图片说明

lixingqiao01
lixingqiao01   2016.03.24 18:03

也不说你是怎么添加的

oyljerry
oyljerry   Ds   Rxr 2016.03.24 20:44

对应view什么addsubview来添加

x1q2l3
x1q2l3   2016.03.29 23:28

我想你的这个ViewController是window的 rootViewController 吧?

如果是的话应该是如下解释:

  1. 设置为 window 的跟视图之后,就要把该 viewcontroller 管理的 view 加到 window 上,iOS 早期版本没有提供 rootViewController ,就是这么做的;
  2. 获取 viewcontroller 管理的 view 时,第一次是没有改对象的,因此调用 loadview 创建,然后就会调用 viewdidload 方法;
  3. 你 viewdidload 方法没返回时添加到 window 上一个 view ;紧接着 viewcontroller 管理的 view 加到 window ;

所以就出现了你说的在下面的情况了....

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!