Как получить доступ к переменной структуры из класса внутри этой структуры в SwiftUI? - PullRequest
0 голосов
/ 07 мая 2020

Как мне получить доступ к переменной @State из функции, находящейся внутри класса, находящегося внутри структуры. Псевдокод выглядит так:

struct StructName: UIViewRepresentable {
    @State var variableName = value
    class className: NSObject {
        func functionName(parameters) {
            //How do I access variableName from here?
        }
    }
}

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Вот возможный подход. Типы бетона используются в демонстрационных целях.

struct StructName: UIViewRepresentable {
    @State var variableName: Bool = false

    class ClassName: NSObject {
        let boundVariable: Binding<Bool>

        init(variableName: Binding<Bool>) {
            self.boundVariable = variableName
        }

        func functionName(parameters: [String]) {
            boundVariable.wrappedValue = true
        }
    }

    // somewhere in place of ClassName instantiation below use
    // ClassName(boundVariable: $variableName)
}
1 голос
/ 07 мая 2020

Используйте @Binding и передайте его в качестве аргумента в init:

struct StructName: UIViewRepresentable {

    @Binding var variableName: Bool

    func makeUIView(context: Context) -> UIView {
        return UIView()
    }

    func updateUIView(_ uiView: UIView, context: Context) {

    }

    func makeCoordinator() -> Coordinator {
        Coordinator(variableName: self.$variableName)
    }

     class Coordinator: NSObject {

        @Binding var variableName: Bool

        init(variableName: Binding<Bool>) {
           _variableName = variableName
        }

        func functionName() {
            //access variableName here
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...