【发布时间】:2022-01-27 12:43:19
【问题描述】:
在搜索栏处于活动状态时推送到新视图时遇到问题。
在推送视图中,我希望隐藏导航栏。它适用于所有情况,除非搜索字段在推送视图上处于活动状态并且导航样式为 StackNavigationViewStyle。
在下面的示例项目中,如果您选择一行,则会按预期推送新视图并隐藏导航栏。但是,如果您先选择搜索栏使其处于活动状态,然后按一行,则导航栏不再隐藏在推送的视图中。
删除 StackNavigationViewStyle,一切都会正常,但是我需要 StackNavigationViewStyle。
struct ContentView: View {
@State var searchString = ""
var body: some View {
NavigationView {
List {
NavigationLink {
PushedView()
} label: {
Text("Press Me")
}
}
.listStyle(PlainListStyle())
.searchable(text: $searchString)
.navigationTitle("First View")
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
struct PushedView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
Button {
self.presentationMode.wrappedValue.dismiss()
} label: {
Text("Pop View")
}
.navigationTitle("Second View")
.navigationBarHidden(true)
}
}
【问题讨论】:
标签: ios swift xcode swiftui-navigationview