I would like to open PhotosPicker in NavigationSplitView from Detail, But I can not open. I am sharing my code here. Please guide me.
class SampleData {
static let arraySampleFolder = [DetailProject(uniqueID: 1, projectName: "Project 1"),
DetailProject(uniqueID: 2, projectName: "Project 2")
]
static let arrayDetailFolder = [DetailProject(uniqueID: 1, projectName: "Detail 1"),
DetailProject(uniqueID: 2, projectName: "Detail 2")
]
}
struct ProjectLibrary: View {
@State private var visibility: NavigationSplitViewVisibility = .all
@State private var selectedFolder: String?
@State private var selectedItem: String?
@State private var fullVisible: Bool = false
@State private var selectedItems: [PhotosPickerItem] = []
@State private var selectedPhotosData: [Data] = []
@State private var arraySelectedPhotosAndVideosString: [Box] = []
@State private var folders = [
"Project 1": [
"Video",
"Photo",
"Camera"
],
"Project 2": [
"Video",
"Photo",
"Camera"
]
]
var body: some View {
NavigationSplitView(columnVisibility: $visibility) {
List(selection: $selectedFolder) {
ForEach(Array(folders.keys.sorted()), id: \.self) { folder in
NavigationLink(value: folder) {
Text(verbatim: folder)
}
}
}
.navigationTitle("Library")
} content: {
if let selectedFolder {
List(selection: $selectedItem) {
ForEach(folders[selectedFolder, default: []], id: \.self) { item in
NavigationLink(value: item) {
Text(verbatim: item)
}
}
}
.navigationTitle(selectedFolder)
} else {
Text("Choose a folder from the sidebar")
}
} detail: {
NavigationStack {
ZStack {
if let selectedItem {
NavigationLink(value: selectedItem) {
Text(verbatim: selectedItem)
.frame(alignment: .bottomTrailing)
.navigationTitle(selectedItem)
.toolbar {
PhotosPicker(selection: $selectedItems, maxSelectionCount: 5, matching: .any(of: [.images, .videos])) {
Image(systemName: "photo.on.rectangle.angled")
}
.onChange(of: selectedItems) {
}
if(!fullVisible){
Button("+") {
visibility = .detailOnly
fullVisible = true
}
}else{
Button("-") {
visibility = .all
fullVisible = false
}
}
}
}
} else {
Text("Choose an item from the content")
}
}
.navigationDestination(for: String.self) { text in
//Text(verbatim: text)
//if(selectedItem == "Video"){
//}else if(selectedItem == "Video"){
// }else{
// }
}
}
}
}
}
