whose view is not in the window hierarchy

时间:2022-03-17 02:38:20

在做界面跳转的时候,我们经常会用到这两个函数

func dismissViewControllerAnimated(flag:Bool, completion: (() ->Void)?)

func presentViewController(viewControllerToPresent:UIViewController, animated flag:Bool, completion: (() ->Void)?)

有时候先把自己所在的这个页面 dismiss 掉,再 present 另外一个页面时,控制台会提示 whose view is not in the window hierarchy 这个错误信息。

解决方法:

 

①如果这两个语句出现按钮点击事件里面

这时只要把 dismiss 这一句注释掉,,直接 present 就可以啦。


 

②而如果这种语句出现在 ViewDidLoad 方法中

 

那么则应该把语句转移到 ViewDidAppear 方法中,毕竟你不能对一个只 Load 完毕,却还没有 Appear 出来的 ViewController 要求太多 :)