navigation实现跨线路返回

本文介绍了一种在Swift中实现特定导航返回的方法。通过在点击返回时利用`navigationController?.viewControllers.removeRange`来移除部分视图控制器,可以确保用户能够直接返回到根控制器或者指定的保留页面。

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

最近遇到一个例子,是导航里push了几个页面,然后要返回到不在导航下的页面,再返回就到跟控制器了。
1.实现思路 点击返回事件使用push将页面压入
2.同时将除了根控制器以外的页面缓存清空,这样就再点击返回的时候就可以返回根控制器 或者返回指定的保留的页面上
3.核心方法 navigationController?.viewControllers.removeRange(Range.init(start: 1, end: (navigationController?.viewControllers.count)!-1))
这边 index 0 是跟控制器不能清除 然后最后一个控制器是要跳转的控制器也不能清除不然跳转不了。
不过可以用通知让前面任何一个页面进行push,前提还是不能清除跳转的页面,然后可以在跳转后进行清除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值