前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >whose view is not in the window hierarchy!

whose view is not in the window hierarchy!

作者头像
星宇大前端
发布2019-01-15 16:17:58
发布2019-01-15 16:17:58
1.6K00
代码可运行
举报
文章被收录于专栏:大宇笔记大宇笔记
运行总次数:0
代码可运行

今天遇到一个问题简单描述一下:

需求:登录成功之后,需要判断是否绑定手机,没有绑定present一个手机页面,然后Tabbar切换到首页。这个需求还可以,但是业务里登录,注册,忘记密码等等都是modal出来的。所以登陆完之后不得不全部dissmiss掉,然后再通知到我的界面做相应操作。

遇到问题:

 whose view is not in the window hierarchy!

分析:也就是你现在的Present的视图并不是Windows视图,因为现在还有没有dismiss掉的视图。

解决:1.如果是用错顶层视图的可以找到顶层视图。  2,如果没有dismiss掉就进行presnt的可以,dissmiss  callback进行处理。

代码(Swift):

找到顶层视图:

代码语言:javascript
代码运行次数:0
复制
///获取当前控制器
func currentVc() ->UIViewController{
    
    var vc = UIApplication.shared.keyWindow?.rootViewController
    
    if (vc?.isKind(of: UITabBarController.self))! {
        vc = (vc as! UITabBarController).selectedViewController
    }else if (vc?.isKind(of: UINavigationController.self))!{
        vc = (vc as! UINavigationController).visibleViewController
    }else if ((vc?.presentedViewController) != nil){
        vc =  vc?.presentedViewController
    }
        
    return vc!
    
}

dismiss所有的界面:

代码语言:javascript
代码运行次数:0
复制
///所有页面都diss到根目录
func dissAllToRoot(currentVc:UIViewController,completion: (() -> Swift.Void)? = nil){
    var vc = currentVc.presentingViewController
    if vc?.presentingViewController == nil {
        currentVc.dismiss(animated: true, completion: completion)
    }
    
    while ((vc?.presentingViewController) != nil) {
        vc = vc?.presentingViewController
    }
    
    vc?.dismiss(animated: true, completion: completion)
}

最后就简单了

代码语言:javascript
代码运行次数:0
复制
 dissAllToRoot(currentVc: self) {
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "****"), object: nil)
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年03月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  whose view is not in the window hierarchy!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档