簡體   English   中英

TabView 在 iOS13 SwiftUI 上無法正常工作

[英]TabView does not work correctly on iOS13 SwiftUI

我創建了一個包含 4 個項目的 TabView,但在 iOS 13.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM