首先明白一点,UINavigationController里边push出的视图view,相对于window层级都再UiNavigation一级:
1.window->添加imgview->之后window添加Navigation,则imgview会被挡住
2.window->添加UINavigation->window添加imgview,则无论Navigationpush多少viewcontrller,imgview都会显示,因为imgview比UINavigation里的所有视图都高.
3.window->添加aVC->之后添加imgview,则imgview会显示,因为imgview比aVC相对于window视图的的层级高,若此时aVC利用模态present一个bVC,测imgview不显示,因为bVC的的层级高于imgview的的层级。
4.window->设置aVC为根视图->aVC模态present一个bVC->bVC模态一个cVC->cVC模态一个dVC,此时aVC消失dismiss,则bcd都消失,显示根视图aVC的的界面
5.window->设置aVC为根视图->aVC模态present一个bVC->bVC模态一个cVC->cVC模态一个dVC,在dVC调用此bVC消失dismiss,则cd都消失,但b显示,显示根视图bVC的的界面 。即aVC去present出bcdefg。。。。很多的vc,但aVC上面有这些界面显示时,调用aVC的dismiss方法,只是释放掉了aVC上遍地的这些vc,回到aVC而已,aVC并没有消失,还在显示;只有屏幕上层现实的就是aVC时,调用aVC的的dismiss方法,aVC才消失.
另外,若中间vc有延时present出vc的方法,则无法present.