【发布时间】:2021-04-10 06:01:24
【问题描述】:
我有显示多个标签的 tabView。在主页视图中,我有具有搜索按钮作为导航项的导航视图,它推动搜索视图。在呈现工作表并将其关闭后的搜索视图中,searchView 弹出到主视图并再次推到顶部。这会导致搜索界面错位。 这是我的 tabView 代码:
struct ContentView: View {
var body: some View {
TabView {
homeView()
.tabItem { Text("Home") }
}
}
}
这里是 HomeView 的代码:
struct homeView:View{
@State var showSearch:Bool = false
var body: some View{
NavigationView{
Text("home")
.navigationBarTitle("", displayMode: .inline)
.navigationViewStyle(StackNavigationViewStyle())
.navigationBarItems(trailing: HStack{
NavigationLink.init("", destination: SearchContentView(), isActive: $showSearch)
Button.init("search", action: {
showSearch.toggle()
})})
}
}
}
然后这是searchView:
struct SearchContentView: View {
@State private var isplayItem:Bool = false
@State private var isEditing:Bool = false
var body: some View {
List(0..<30, rowContent: { i in
Text("\(i)th")
.onTapGesture {
isplayItem.toggle()
}
.sheet(isPresented: self.$isplayItem) {
Text("search Item \(i)")
.background(Color.blue)
.offset(x: 0, y: 0)
}
})
.navigationBarTitle("search", displayMode: .inline)
.navigationViewStyle(StackNavigationViewStyle())
}
}
提前致谢。
【问题讨论】:
-
这需要调试,您能提供最小的可重现示例吗? (提供的代码不可测试)
-
@Asperi 我将代码更改为一个简单且可测试的示例。感谢您的帮助:)
-
@pawello2222 不,这对我的问题没有帮助:(
标签: swift swiftui navigation