요소 수가 다른 두 개의 배열이 있고이 요소를 서로 다른 하위보기에 표시하려고합니다. 따라서 사용자는 "다음"을 탭해야하며 배열의 끝에있을 때까지 배열의 다음 요소가 표시됩니다.
다음과 같이 작동합니다.
---FirstView(FirstElement)---SecondView(SecondElement)---ThirdView(ThirdElement)--Close
Mainview
---FirstView(FirstElement)---SecondView(SecondElement)--Close
따라서 필요한 조회수는 가변적입니다. 그러나 나는 이것이 어떻게 될 수 있는지 모르고 이와 같은 것을 찾을 수 없습니다.
내 코드는 다음과 같습니다.
struct ContentView: View {
@State private var showPopover: Bool = false
var body: some View {
Button(action: {
self.showPopover.toggle()
}) {
Text("Choose a Usergroup")
}.sheet(isPresented: $showPopover) {
NewView(showPopover: $showPopover)
}
}
}
struct NewView: View {
@Binding var showPopover: Bool
@State var namesOfFemaleUsers = ["Sabrina", "Nicole", "Barbara"]
@State var namesOfMaleUsers = ["Peter", "Bart", "Homer", "Bernie", "Carl"]
var body: some View {
NavigationView {
HStack {
NavigationLink(
destination: VariableView(showPopover: $showPopover, arrayData: namesOfMaleUsers),
label: {
Text("Male Users")
})
NavigationLink(
destination: VariableView(showPopover: $showPopover, arrayData: namesOfFemaleUsers),
label: {
Text("Female Users")
})
}
}
}
}
struct VariableView: View {
@Binding var showPopover: Bool
@State var arrayData: [String]
var body: some View {
VStack {
// Here should be a Text with the name of first element and a button to go to the next View with the second element
Button(action: {self.showPopover.toggle()}){
Text("Close")
}
}
}
}
여기에 가능한 접근 방식이 있습니다. 사용 가능한 데이터의 인덱스로 작동하고 안전 범위를 확인하십시오.
Xcode 12 / iOS 14로 테스트되었습니다.
struct NewView: View {
@Binding var showPopover: Bool
var namesOfFemaleUsers = ["Sabrina", "Nicole", "Barbara"]
var namesOfMaleUsers = ["Peter", "Bart", "Homer", "Bernie", "Carl"]
var body: some View {
NavigationView {
HStack {
if !namesOfMaleUsers.isEmpty {
NavigationLink(
destination: VariableView(showPopover: $showPopover, arrayData: namesOfMaleUsers, index: 0),
label: {
Text("Male Users")
})
}
if !namesOfFemaleUsers.isEmpty {
NavigationLink(
destination: VariableView(showPopover: $showPopover, arrayData: namesOfFemaleUsers, index: 0),
label: {
Text("Female Users")
})
}
}
}
}
}
struct VariableView: View {
@Binding var showPopover: Bool
var arrayData: [String]
var index: Int
var body: some View {
VStack {
Text("User: \(arrayData[index])")
if index + 1 < arrayData.count {
NavigationLink(
destination: VariableView(showPopover: $showPopover, arrayData: arrayData, index: index + 1),
label: {
Text("Next")
})
}
Button(action: {self.showPopover.toggle()}){
Text("Close")
}
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다