您当前的位置: 首页 >  ui

SwiftUI导航至子视图后状态改变导致导航栈提前弹出的原因及解决

发布时间:2022-06-19 09:29:10 ,浏览量:0

在这里插入图片描述

问题现象

为了完成一个富于表现力的App,我们经常要在SwiftUI的众多视图中恣意穿梭导航。

不过有时我们会遇到一些奇怪的导航行为:

在这里插入图片描述

如上图所示,我们在根视图中导航进入了 Apple 项目对应的详情子视图,随后我们在子视图中将Apple项目所处的分类修改为 Default ,此时原来显示的详情子视图被提前退出了,我们竟然直接返回到了根视图。

要说明的是,该问题只在最新的iOS 15 中出现,而在iOS 14中一切正常。

为什么iOS 15中导航栈会提前退出呢?

在本篇博文中,我们将披露NavigationLink的一个隐藏陷阱。

Let’s find out!!!

问题分析 1. SwiftUI中的导航机制

大家都知道,SwiftUI界面中的一切改变都由状态来驱动,导航自然也不例外。

利用NavigationView容器,我们可以利用其中NavigationLink绑定状态的变化来灵活的实现根视图到各个子视图的导航功能。


	
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108180博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0808s