0

ここでエラーが発生 - selectedTab = tab.getTab()

致命的なエラー: SelectedTab タイプの ObservableObject が見つかりません。SelectedTab の View.environmentObject(_:) が、このビューの祖先として欠落している可能性があります。

これも試してみました - https://www.hackingwithswift.com/forums/swiftui/fatal-error-no-observableobject-of-type-order-found/3208

    class SelectedTab: ObservableObject {
        @Published var tab:String = "Home"
        
        func setTab(tabName: String) {
            tab = tabName
        }
        
        func getTab() -> String {
            return tab
        }
    }
    
    
    
    struct TabBarContentView: View {
        @EnvironmentObject var tab: SelectedTab
        
        var body: some View {
            Home().environmentObject(tab)
        }
    }
    
    struct TabBarContentView_Previews: PreviewProvider {
        
        
        static var previews: some View {
            Group {
                TabBarContentView()
                    .previewDevice(PreviewDevice(rawValue: "iPhone 12 Pro Max"))
                    .previewDisplayName("iPhone 12 Pro Max") 
            }
        }
    }
    
struct Home: View {
    @EnvironmentObject var tab: SelectedTab
    @State var selectedTab = "Home"

init() {
    UITabBar.appearance().isHidden = true
    selectedTab = tab.getTab()
}

var body: some View{
    NavigationView() {
        ZStack(alignment: .bottom, content: {
            
            TabView(selection: $selectedTab){
                HomeTab()
                NewsTab()
                ProfileTab()
                MoreTab()
            }
        }
        }
}

}

4

2 に答える 2