mirror of
https://github.com/HaishinKit/HaishinKit.swift.git
synced 2026-05-07 20:12:28 +00:00
55 lines
1.3 KiB
Swift
55 lines
1.3 KiB
Swift
import SwiftUI
|
|
|
|
struct ContentView: View {
|
|
enum Tab: String, CaseIterable, Identifiable {
|
|
case playback
|
|
case publish
|
|
case preference
|
|
|
|
var id: String { rawValue }
|
|
}
|
|
|
|
@State private var selection: Tab = .playback
|
|
|
|
var body: some View {
|
|
NavigationSplitView {
|
|
List(Tab.allCases, selection: $selection) { tab in
|
|
Label(tabTitle(tab), systemImage: tabIcon(tab)).onTapGesture {
|
|
selection = tab
|
|
}
|
|
}
|
|
} detail: {
|
|
switch selection {
|
|
case .playback:
|
|
PlaybackView()
|
|
case .publish:
|
|
PublishView()
|
|
case .preference:
|
|
PreferenceView()
|
|
}
|
|
}
|
|
}
|
|
|
|
private func tabTitle(_ tab: Tab) -> String {
|
|
switch tab {
|
|
case .playback:
|
|
return "Playback"
|
|
case .publish:
|
|
return "Publish"
|
|
case .preference:
|
|
return "Preference"
|
|
}
|
|
}
|
|
|
|
private func tabIcon(_ tab: Tab) -> String {
|
|
switch tab {
|
|
case .playback:
|
|
return "play.circle"
|
|
case .publish:
|
|
return "record.circle"
|
|
case .preference:
|
|
return "info.circle"
|
|
}
|
|
}
|
|
}
|