SwiftUI 동적 선택에 양식

0

질문

나는 초보자 SwiftUI 개발자,그리고 나는 데 문제가 생기는 동적으로 제공 다른 선택에 따라 사용자의 선택에서는 보기입니다. 문제를보고,다음 코드를 실행 시뮬레이터에서 변경 pickerOneSelection 하"선택"세 가지를 변경한 다음,다시"선택"두고를 변경하려는 시도 pickerTwoSelection. 응용 프로그램은 즉시 충돌;특정 오류이 장난감을 가지 예로"실 1:EXC_BAD_ACCESS(code=1,address=0x8)". 어떤 통찰력을 가장 환영합니다!

옆으로는,나는 이러한 질문(SwiftUI 계층적 선택과 데이터를 동적 충돌고)(swiftUi:2 확 하나의 화면에서-응용 프로그램의 충돌과 함께"인덱스의 범위")지만,가능하면 나를 변환하지 않는 문자열 변수 선택(pickerOneSelection,pickerThreeSelection)로 정수해야로 다시 번역하는 문자열을 얻을 텍스트와 연결된 사용자의 선택입니다. 가능하지 않으면 무엇을 하려고 해요 하지 않고 지수 변수는 경우에,당신이 나를 도울 수 있는 이유를 이해하는 매우 도움이 될 것입니다.

import SwiftUI

struct ContentView: View {
    @State var pickerOneSelection: String = "Picker Two"
    @State var pickerTwoVisible: Bool = false
    @State var pickerTwoSelection: Int = 3
    @State var pickerThreeSelection: String = "Option 1"
    
    var pickerOneOptions = ["Picker Two", "Picker Three"]
    var pickerThreeOptions = ["Option 1", "Option 2", "Option 3"]
    
    var body: some View {
        NavigationView {
            Form {
                Picker("Picker One selection", selection: $pickerOneSelection) {
                    ForEach(pickerOneOptions, id: \.self) {
                        Text($0)
                    }
                } // End of Picker 1
                
                if pickerOneSelection == "Picker Two" {
                    HStack {
                        Text("Picker Two selection")
                        Spacer()
                        Button(String(pickerTwoSelection)) {
                            self.pickerTwoVisible.toggle()
                        }
                    } // End of HStack
                    
                    if pickerTwoVisible {
                        Picker("Picker Two", selection: $pickerTwoSelection) {
                            ForEach(0..<32, id: \.self) {
                                Text(String($0))
                            }
                        }
                        .pickerStyle(WheelPickerStyle())
                    } // End of pickerTwoVisible
                    
                } else {
                    
                    Picker("Picker Three selection", selection: $pickerThreeSelection) {
                        ForEach(pickerThreeOptions, id: \.self) {
                            Text($0)
                        }
                    } // End of Picker 3
                    
                }
            } // End of Form
        } // End of NavigationView
    } // End of body
} // End of ContentView

은 당신의 도움에 대한 감사과 전문 지식!

picker swiftui xcode
2021-11-23 13:46:55
1

최고의 응답

1

의 핵심 문제는 당신이 숨기기 선택,그래서를 설정하기 위해 최선을 다하고 투명성을 0

Picker("Picker Two", selection: $pickerTwoSelection) {
                            ForEach(1..<32, id: \.self) {
                                Text(String($0))
                            }
                        }
                        .pickerStyle(WheelPickerStyle())
                        .opacity(pickerTwoVisible ? 1 : 0)
                        .frame(width: pickerTwoVisible ? nil : 0, height: pickerTwoVisible ? nil : 0)
2021-11-23 14:25:11

주셔서 감사합니다 이 제안을 줍니다. 불행하게도,그것은 나타나지 않는 문제를 해결합니다. 를 추가한 후에 이 코드를 선택,두 응용 프로그램은 여전히 충돌을 변경하는 경우 선택 한 선택을 표시하는 선택을 세 가지를 변경한 다음,선택 중 하나는 선택을 뒤로하는 선택을 두고 시도 변경하는 선택을 두 가지 선택합니다. 다른 뭔가가 있는 해야 할 다른 곳에서 내 코드는 이 솔루션을 작동하는가?
ej5607

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................