SwiftUI使用NavigationView导致列表图片和文本消失问题求解
问题原因
NavigationView是导航栈的根容器,你将它放在列表子组件ItemRow内部时,每个列表行都会生成独立的导航栈,多个并列的NavigationView会互相干扰布局,最终导致行高压缩、内容排版异常,就是你看到的列表显示错乱问题。- 同时
NavigationLink必须依附于上层的NavigationView才能正常工作,每个行单独嵌套NavigationView会导致导航栈不统一,跳转逻辑也会出现异常。
解决方法
将NavigationView从ItemRow中移除,放到整个菜单列表页面的根视图层级,让所有列表元素共用同一个导航栈即可。NavigationLink直接写在行内容中,不需要外层额外套NavigationView,你最终给出的实现代码就符合这个规范,可以正常实现点击跳转的同时保持列表布局正常。
内容的提问来源于stack exchange,提问作者user13897665
相关产品推荐
相关产品推荐

