首页 > 解决方案 > 如何在 SwiftUI 按钮中使用布尔值?

问题描述

我想改变 bool 的结果Enabled,但不知道该怎么做。

我需要 bool 来启用/禁用另一个UIViewRepresentable.

代码:

import SwiftUI

var Enable = true

struct ContentView: View {

      @State private var Route = false

    var body: some View {

        VStack{

        Button(action: {
                       self.Route.toggle()
                       }) {
                       Text("Route >")
                   }

                   if Route {

                       Enable = false
                  }

          }

    }
}

如果我使用此代码,它会打印错误:

Argument type '()' does not conform to expected type 'View'

标签: swiftui

解决方案


如评论中所述,按照惯例,变量应以小写字母开头,类型(类、枚举、结构)应以大写字母开头。

此外,您的代码应该放在闭包内。

var enable = true

struct ContentView: View {

    @State private var route = false

    var body: some View {

        VStack{

            Button(action: {
                self.route.toggle()
                if self.route { enable = false }
            }) {
                Text("Route >")
            }
        }
    }
}

推荐阅读