在做界面跳转的时候,我们经常会用到这两个函数
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 要求太多 :)
部分参考自StackOverFlow中的:whose view is not in the window hierarchy
网友评论