iOS window,view,navigation,present的区别总结.

本文详细解析了iOS应用中不同视图控制器的层级关系及显示逻辑,包括UINavigationController中的视图层级、模态呈现的视图层级关系以及它们与顶层视图的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先明白一点,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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值