美文网首页
iOS 启动时在window上添加视图不显示问题

iOS 启动时在window上添加视图不显示问题

作者: 柚子皮肤 | 来源:发表于2018-06-07 12:21 被阅读0次

一般项目在启动时,都会加载一个广告页或者第一次加载时有引导页,要做这个有很多种方案,比如:

1. 自定义一个视图添加到window上.

2. 或者写个controller,启动时作为rootViewController,登录成功后再把rootViewController指向tabBarController.

3.等等.......

不同的程序员会根据自己的项目需求用不同的处理方案, 我的项目里我是采用的第一种方案,将视图添加到window上,但是添加window上的时候发现出问题了. 启动的时候,根本看不到添加的视图,启动完成后就直接显示rootViewController了.如图所示:

添加到window上的视图被覆盖了,不显示.

开始以为是自己的视图写的有问题,找了很久才发现是被覆盖的原因.

解决方案:

1. 可以自己再定义个window,添加到自己定义的window上.

UIWindow *guideWindow = [[UIWindow alloc] initWithFrame:gpView.frame];

    guideWindow.rootViewController = [UIViewController new];

    guideWindow.windowLevel = UIWindowLevelStatusBar;

    [guideWindow.rootViewController.view addSubview:gpView];

    [guideWindow makeKeyAndVisible];

    self.guideView = gpView;

    __weak typeof(self) weakSelf = self;

    gpView.experienceBlock = ^{

        guideWindow.hidden = YES;

        [weakSelf launchLogin];

    };

2.  把添加视图放在 [self.window makeKeyAndVisible]; 这句代码之后.

写在window显示之后

这样就可以了.

总结:  启动时在window上添加视图,需要在window显示并作为keyWindow之后添加.也就是要放在[self.window makeKeyAndVisible];这句代码之后.  否则,由于在添加视图的时候,window有了rootViewController,它只管理rootViewController,添加的view会被rootViewController覆盖掉.(即使添加视图是在设置rootViewController之后,也是如此.)

相关文章

  • iOS 启动时在window上添加视图不显示问题

    一般项目在启动时,都会加载一个广告页或者第一次加载时有引导页,要做这个有很多种方案,比如: 1. 自定义一个视图添...

  • 适配iOS11的坑

    1、iOS11视图无法显示----添加在window上的视图无法显示我们一般都会用下面这种方式来让一个视图显示在最...

  • UIPanGestureRecognizer与UITableVi

    问题描述:window的根控制器上添加了UITableView,还有侧边栏视图,起初为了实现拖动完成侧边栏显示/不...

  • 在window上添加子视图不显示

    最近做项目遇到了这样一个问题:在一个页面中点击模态弹出视图再dismiss回原来的页面并在window上添加子视图...

  • 无标题文章

    UIWindow 最上层添加视图 如果新建的视图已经被addSubView,window再添加就会添加不上??!!待思考

  • iOS11下[UIApplication sharedAppli

    最近在适配iOS11的时候一个添加到window上的视图不显示,调试打印发现在iOS11中,当发生页面跳转的后,获...

  • Activity 视图显示

    一、创建给Window添加布局视图 创建显示Activity视图,需要调用setContentView() 二、W...

  • iOS 11在window上加视图不显示

    项目中用到了弹窗类***,发现iOS 8.1正常,iOS 11弹窗不显示,想到估计是window的问题,查了一下,...

  • (IOS)把视图添加在window上

    UIView *view=[UIView new]; [[UIApplication sharedAppl...

  • iOS添加视图到window

    一直用[[UIApplication sharedApplication].windows lastObject]...

网友评论

      本文标题:iOS 启动时在window上添加视图不显示问题

      本文链接:https://www.haomeiwen.com/subject/wfxgsftx.html