use*_*832 5 swift swiftui ios15
我试图隐藏第三个选项卡上的导航栏,但对于其余选项卡,它应该显示。它在 iOS 14 中工作正常,但在 iOS 15 中修改器随机工作。一旦我开始在选项卡之间切换,导航栏也开始显示在第三个选项卡上。下面是我的 SwiftUI 文件代码
注意:这只是我的应用程序的更复杂代码设置的简单表示。Xcode:12.5.1 设备:XR(iOS 15 beta)
import SwiftUI
struct TestView: View {
@State var selectedTab: TabType = .home
var body: some View {
NavigationView {
TabView(selection: $selectedTab) {
ForEach(TabType.allCases, id: \.self) { tabType in
switch tabType {
case .profile:
ThirdView()
.navigationBarHidden(true)
.tag(tabType)
.tabItem {
Label(tabType.title, systemImage: "plus")
}
default:
SecondView()
.tag(tabType)
.tabItem {
Label(tabType.title, systemImage: "star")
}
}
}
}
}
}
}
struct SecondView: View {
var body: some View {
VStack {
Spacer()
Text("2nd view")
NavigationLink("3rd view", destination: ThirdView())
Spacer()
}
.background(Color.green)
}
}
struct ThirdView: View {
var body: some View {
ZStack {
Color.red
Text("3rd view")
}
}
}
enum TabType: CaseIterable {
case home
case discover
case profile
case more
var image: Image {
switch self {
case .home:
return Image(systemName: "plus")
case .discover:
return Image(systemName: "plus")
case .profile:
return Image(systemName: "plus")
case .more:
return Image(systemName: "plus")
}
}
var title: LocalizedStringKey {
switch self {
case .home:
return LocalizedStringKey("home")
case .discover:
return LocalizedStringKey("Discover")
case .profile:
return LocalizedStringKey("Me")
case .more:
return LocalizedStringKey("Shop")
}
}
}
Run Code Online (Sandbox Code Playgroud)
将您的移动.navigationBarHidden(true)到您的位置,ThirdView's ZStack如下所示:
struct ThirdView: View {
var body: some View {
ZStack {
Color.red
Text("3rd view")
}.navigationBarHidden(true)
}
}
Run Code Online (Sandbox Code Playgroud)
另外,如果你这样做,你将失去后退按钮......
确保首先将其从 TabView 中删除。
如果有效的话,LMK!
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |