簡體   English   中英

SwiftUI 綁定 boolean if 語句(無法轉換類型“綁定”的值<bool> ' 到預期的條件類型 'Bool')</bool>

[英]SwiftUI binding boolean if statement (Cannot convert value of type 'Binding<Bool>' to expected condition type 'Bool')

我試圖有條件地顯示一個視圖(不使用.sheet)並使用綁定 boolean 在標題中返回上述錯誤。 如果我使用self.menuactivated ,@State 變量切換時不會顯示任何視圖。 有沒有解決的辦法?

struct ContentView: View {
    @State private var menuActivated  = false

    var body: some View {
        NavigationView {
            ... // code
        }
        if $menuActivated {
            menuView()
        }
    }
}

我認為這是意圖(菜單將在切換時顯示在 NavigationView 上)

struct ContentView: View {
    @State private var menuActivated  = false

    var body: some View {
        ZStack {
           NavigationView {
            ... // code
           }
           if menuActivated {
              menuView()
           }
        }
    }
}

找到了解決方法。 NavigationView嵌入到VStack中,並將menuView添加到它的末尾。

struct ContentView: View {        
@State private var menuActivated  = false

        var body: some View {
            ZStack {

                NavigationView {
                ... // view code        
                }
                if menuActivated {
                    menuView()
                }

            }

        }
    }

如果您正在尋找基於條件的視圖

func getView() -> AnyView {
    return AnyView(
        //any business logic and view  
    )
}

並像使用它一樣

self.getView()

暫無
暫無

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

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