I apologize if my question is not worded correctly.
I have 3 views: 1) ContentView, which has a TabView leading to 2) NestedView, which has a popup view that darkens the screen behind it called 3) SelectView
Here is the necessary code for ContentView. I have a TabView leading to NestedView and a condition to darken and blur the background when darken is true.
TabView (selection: $selection){
NestedView()
.tabItem {
selection == 0 ? Image(systemName: "house.fill") : Image(systemName: "house")
}
.tag(0)
}
if darken {
ZStack {
ZStack {
Rectangle()
.ignoresSafeArea(.all)
.foregroundColor(Color.black).opacity(0.75)
}.background(Blur(style: .systemChromeMaterial).opacity(0.85)
.ignoresSafeArea(.all))
SelectView(darken: $darken)
}
I want to pass in data to the SelectView constructor, but I'm not sure how to get the data there.
Here is the code for NestedView
@State var dataArray: [ItemDataModel]
@Binding var darken: Bool
Button(action: {
darken = true
}) {
I need dataArray to be sent through the SelectView constructor in ContentView.
In SelectView I have a Binding variable for darken, and I know I need another for the received data, but I'm not sure whether it needs to be @State or @Binding or something entirely different.
@Binding var darken: Bool
@________ var dataArray: [ItemDataModel]
Any help is appreciated!
CodePudding user response:
NestedView should not have a @State var dataArray: [ItemDataModel].
NestedView and SelectView should both have a @Binding var dataArray: [ItemDataModel].
You should move @State var dataArray: [ItemDataModel] up into ContentView so it can pass $dataArray down to both NestedView and SelectView.
