TabView在iOS13 SwiftUI上无法正常工作



我创建了一个包含4个项目的TabView,但在iOS13.x中,只有第一个视图才能正确显示。当我点击另一个项目的图标时,视图没有正确显示,但应用程序只显示白色视图。如果我在iOS上运行该应用程序>14我能正确地查看所有的视图。

TabView实现:

struct ContentView: View {
private enum Tab: Hashable {
case discovery
case qrcode
case devices
case settings
}

@State private var selectedTab: Tab = .discovery
var body: some View {
NavigationView {
TabView(selection: $selectedTab) {
DiscoveryView()
.tabItem {
VStack {
Image(systemName: "lock.rotation.open")
Text("Discovery")
}
}
.tag(0)
QrCodeView()
.tabItem {
VStack {
Image(systemName: "qrcode.viewfinder")
Text("QrCode")
}
}
.tag(1)
DevicesView()
.tabItem {
VStack {
Image(systemName: "qrcode.viewfinder")
Text("My devices")
}
}
.tag(2)
SettingsView()
.tabItem {
VStack {
Image(systemName: "gear")
Text("Settings")
}
}
.tag(3)
}
}
}

其中一个视图的实现:

struct QrCodeView: View {
var body: some View { 
Text("QrCode")
}
}

我哪里做错了?

这可能是selection。。。selectiontag类型应该相同,所以请尝试

@State private var selectedTab: Tab = .discovery
var body: some View {
NavigationView {
TabView(selection: $selectedTab) {
DiscoveryView()
.tabItem {
VStack {
Image(systemName: "lock.rotation.open")
Text("Discovery")
}
}
.tag(.discovery)      // << here !!
QrCodeView()
.tabItem {
VStack {
Image(systemName: "qrcode.viewfinder")
Text("QrCode")
}
}
.tag(.qrcode)        // << here !!
// ... others the same

相关内容

  • 没有找到相关文章

最新更新