正如我们在代码首选项中看到的那样,Column被设置为NavigationSplitViewColumn.siidear,但当我在iPhone 15 PRO预览版中打开这个应用程序时,会显示NavigationSplitViewColumn.Detail,然后用户必须单击顶部的Back按钮才能进入侧边栏视图
struct ContentView: View {
@State private var selectedSidebarItem: String? = ""
@State private var isExpanded: Bool = true
@State private var preferredColumn = NavigationSplitViewColumn.sidebar
private var toolbarTitle: String {
switch selectedSidebarItem {
case "UrlToSummaryView":
return "URL to Summary"
case "GenerateShortStoryView":
return "Generate a Short Story"
case "YoutubeVideoToSummaryView":
return "Youtube Video to Summary"
case "GenerateIdeasView":
return "Generate Ideas"
default:
return ""
}
}
var body: some View {
NavigationSplitView(preferredCompactColumn: $preferredColumn) {
List(selection: $selectedSidebarItem) {
DisclosureGroup("Tasks", isExpanded: $isExpanded) {
NavigationLink(value: "UrlToSummaryView") {
HStack {
Image(systemName: "link")
Text("URL to summary")
}
}
NavigationLink(value: "GenerateShortStoryView") {
HStack {
Image(systemName: "chart.bar.doc.horizontal")
Text("Generate a short story")
}
}
NavigationLink(value: "YoutubeVideoToSummaryView") {
HStack {
Image(systemName: "video")
Text("Youtube video to summary")
}
}
NavigationLink(value: "GenerateIdeasView") {
HStack {
Image(systemName: "brain.filled.head.profile")
Text("Generate ideas")
}
}
}
}
.navigationTitle("Butler")
} content: {
Text("Hello")
} detail: {
if let selectedSidebarItem {
switch selectedSidebarItem {
case "UrlToSummaryView":
ToolbarWrapper(title: "URL to summary") {
UrlToSummaryView()
}
case "GenerateShortStoryView":
ToolbarWrapper(title: "Generate a Short Story") {
GenerateShortStoryView()
}
case "YoutubeVideoToSummaryView":
ToolbarWrapper(title: "Youtube Video to Summary") {
YoutubeVideoToSummaryView()
}
case "GenerateIdeasView":
ToolbarWrapper(title: "Generate Ideas") {
GenerateIdeasView()
}
default:
Button("Sidebar") {
preferredColumn = NavigationSplitViewColumn.content
}
}
} else {
Text("")
}
}
.navigationSplitViewStyle(.balanced)
}
}
我希望在iPhone中默认可以看到侧边栏视图.