繁体   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