- (UIWindow *)lastWindow
{
NSArray *windows = [UIApplication sharedApplication].windows
for(UIWindow *window in [windows reverseObjectEnumerator]) {
if ([window isKindOfClass:[UIWindow class]] &&
CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds))
return window
}
return [UIApplication sharedApplication].keyWindow
}
你的delegate已经生成的window,因此你就不需要mainWindow.xib了,你创建mainWindow.xib和直接用代码生成window效果是一样的,你要是要生成view的话直接添加UIViewController的类,带不带nib文件看你自己的选择,然后在delegate中生成UIViewController的实例,然后直接[self.window addSubview:viewController.view]就可以了。当然你也可以手动创建空nib,然后指明它是哪个类,然后再添加相应的控件,也是可以的。
希望能帮助到你。
你是要获取当前程序的window吗?还是说你本身就知道这个用法。
下面我简单的介绍一下这种用的的意义,view.window 这个用法一般时候是用于判断当前你 *** 作的这个View是否是可视的,也就是说当前有没有被添加到程序的展示当中来,假如说view.window是nil 说明当前这个View没有被添加进来 也就是说没有一个被添加到window里面的View包含了它
换句话说 只要你执行过 someView addsubview:view 此时 只要这个someView是已经被添加的 那么view.window也就不会为nil了
我看你会问这种问题,说明你的IOS底子还不是很深,假如你是想获取到window 那么应该是写成[[UIApplication sharedApplication].windows lastObject] 这个返回的就是当前的程序的window
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)