NavigationSplitView() {
// Sidebar column
SidebarView()
.environmentObject(navState)
.navigationTitle(LocalizedStringKey("Xxxxxxxxxx"))
.navigationBarTitleDisplayMode(.large)
.toolbar {
ToolbarItemGroup(placement: .navigationBarLeading) {
AccountMenuView(
openSettings: openSettings,
sendEmail: { self.sendEmail(subject: $0) },
showProView: $showProView,
showStatisticsView: $showStatisticsView
)
if syncMonitor.isSyncing {
ProgressView()
.progressViewStyle(.circular)
.tint(.secondary)
}
}
ToolbarItemGroup(placement: .navigationBarTrailing) {
OnboardingMenuView(
showWelcome: { showWelcomeView = true },
...
)
}
}
.id(forceUpdate)
} content: {
// Middle column (Album Detail)
NavigationStack(path: $navState.contentPath) {
detailView
.navigationDestination(for: Album.self) { album in
AlbumDetailListView(item: album)
.environmentObject(navState)
.environmentObject(filterSettings)
.environmentObject(storeManager)
}
.navigationDestination(for: Folder.self) { folder in
HomeFolderView(folder: folder)
.environmentObject(navState)
}
}
.environment(\.sizeClass, sizeClass)
} detail: {
// Last column (Album/Card Detail)
NavigationStack {
if let album = navState.selectedAlbum {
AlbumDetailListView(item: album)
.environmentObject(navState)
.environmentObject(filterSettings)
.environmentObject(storeManager)
} else if let flashcard = navState.selectedFlashcard {
CardDetailView(card: flashcard)
.environmentObject(navState)
} else {
Text("Select an album")
.foregroundStyle(.secondary)
}
}
}
.tint(Color.ECS_Clr)
.inspector(isPresented: $navState.isInspectorPresented) {
if let card = navState.inspectorCard {
CardInspectorView(
card: card,
isPresented: Binding(
get: { navState.inspectorCard },
set: { newValue in
if newValue == nil {
navState.closeInspector()
}
}
)
)
.inspectorColumnWidth(min: 350, ideal: 410, max: 500)
.presentationDetents([.large, .medium], selection: .constant(.large))
.presentationCornerRadius(28)
.onKeyPress(.escape) {
navState.closeInspector()
return .handled
}
}
}
Topic:
SwiftUI
SubTopic:
SwiftUI Q&A