SwiftUI隐藏NavigationLink自带的指示器

135 阅读1分钟

前言

最近在使用swiftUI开发一些项目,不得不说使用起来很爽,但是还是有不少局限性,开发一些简单的页面确实好使,一旦涉及比较复杂的页面,感觉使用swiftUI的风险还是很大。

目前发现的槽点:

1、发现NavigationLink跳转到下一个页面的时候,系统会自带一个“>”的图标

2、通过导航跳转进入二级页面不会自动隐藏Tabbar栏

如何隐藏NavigationLink自带的指示器>图标呢?

我这边替大家发现了一种可靠的方式,大家可以自行去验证。

ZStack {
 NavigationLink(destination:
   ///跳转的目标页面
}) {
      EmptyView()
}
.opacity(0.0)
.buttonStyle(PlainButtonStyle())
    ///显示的view
}
                                                       

进入二级页面隐藏Tabbar栏

///这个比较简单,进入二级页面之后,直接在最外层的view上使用.toolbar(.hidden, for: .tabBar)
例如:
VStack{
   ///
}
.toolbar(.hidden, for: .tabBar)
.toolbarVisibility(.hidden, for: .tabBar) ios18方法

但是使用这种方式去隐藏tabBar有一个小问题,就是返回的时候tabBar才会出现感觉很突兀。