iOS16 NavigationStack(Route)如何返回根视图?
核心原因
path.removeLast() 默认仅移除导航栈的最后一个元素(即返回上一级页面),若要回到根视图,需要清空整个导航栈。
实现方法
有两种简洁的方式可以实现返回根视图的需求:
方法一:直接重置NavigationPath
将绑定的path重新初始化为空的NavigationPath,直接清空整个导航栈:
Button { path = NavigationPath() } label: { Text("Back to root!") }
方法二:一次性移除所有栈元素
通过path.count获取当前导航栈的元素总数,一次性移除全部元素:
Button { path.removeLast(path.count) } label: { Text("Back to root!") }
补充说明
两种方法效果完全一致,均可清空导航栈并回到根视图。无论你的导航栈中包含多少自定义路由元素,这两种方式都能正确重置导航状态,不会残留之前的跳转记录。
内容的提问来源于stack exchange,提问作者Pro Girl
相关产品推荐
相关产品推荐

