Hi, I made this image picker bellow. The goal is to let the user choose pictures from their library and display these in a tabview as bellow in another file/ view, but you can’t change the tabview in the new view. I want to use the data and the images that has been selected in an other view. How can I do this? How can I refrence selectedImages in my other view/file (called it FeedView)? I only get an error saying can’t find selectedImages in scope. Thank you for feedback.
import PhotosUI
import SwiftUI
struct ProfileView: View {
@State private var selectedItems = [PhotosPickerItem]()
@State private var selectedImages = [UIImage]()
var body: some View {
VStack{
Text("Edit Profile")
.frame(height: 30)
.font(.system(size: 30))
if selectedImages.count > 0 {
ZStack{
VStack{
TabView {
ForEach(selectedImages, id: \.self) { img in
ZStack{
Image(uiImage: img)
.resizable()
}
}
}
.tabViewStyle(.page(indexDisplayMode: .always))
.frame(width: 320, height: 400)
.cornerRadius(20)
}
}
} else {
ZStack{
VStack{
Image(systemName: "photo.artframe")
.resizable()
.frame(width: 320, height: 400)
.foregroundColor(.black)
.padding()
}
}
}
PhotosPicker(selection: $selectedItems, maxSelectionCount: 6, matching: .any(of: [.images,.not(.videos)])) {
Label("Pick profile pictures", systemImage: "photo.artframe")
}
.onChange(of: selectedItems) { newValues in
Task {
selectedImages = []
for value in newValues {
if let imageData = try? await value.loadTransferable(type: Data.self), let image = UIImage(data: imageData) {
selectedImages.append(image)
}
}
}
}
}
}
}
struct ProfileView_Previews: PreviewProvider {
static var previews: some View {
ProfileView()
}
}