создание односторонней привязки для кнопок - PullRequest
0 голосов
/ 19 июня 2020

Я пытался протестировать здесь несколько кодов, но не могу заставить его работать.

так, как я хочу, чтобы это работало:

В этом сингле Просмотр, после нажатия первой кнопки приветствия, он должен запустить функцию, чтобы определить, что показывают следующие 4 кнопки. Я не уверен, как создать эту одностороннюю привязку, чтобы разрешить запуск функции и отобразить 4 кнопки после нажатия.

Я продолжаю получать эту ошибку (Результат инициализатора 'Button' не используется)

Что я пробовал:

  1. добавление 4 кнопок, которые должны появиться в закрытие 1-й кнопки Hello, после нажатия ничего не появляется, но компилируется!

Может кто-нибудь поможет? спасибо!

var toggle1 = false
var buttonArray = [12,25,33,4]
var numberArray = [Int]()

func convertingIntoImage() {
    for numbers in buttonArray {
        let numberInString = String(numbers)
        numberArray = numberInString.compactMap {str in Int(numberInString)}
    }
}
struct tryingOut : View {
    var body : some View {

        Button(action: { convertingIntoImage() } ) {
            Text("hello")
        }

        Button(action: { print("Hello") } ) {
            ForEach (numberArray, id: \.self) {
                Image(systemName: "\($0)" + ".circle.fill")
            }
        }
    }
}

1 Ответ

1 голос
/ 19 июня 2020

Если я правильно понял ваш вопрос, вы можете попробовать следующий код:

struct ContentView: View {
    @State var toggle1 = false
    @State var buttonArray = [12, 25, 33, 4]

    var body: some View {
        VStack {
            if !toggle1 {
                Button(action: { self.toggle1.toggle() }) {
                    Text("hello")
                }
            } else {
                Button(action: { print("Hello") }) {
                    ForEach(buttonArray, id: \.self) {
                        Image(systemName: "\($0)" + ".circle.fill")
                    }
                }
            }
        }
    }
}

Вам не нужна отдельная функция для преобразования buttonArray. И вы можете использовать toggle для переключения между отображением кнопки hello и ваших четырех изображений.

...