在我的SwiftUI应用程序上,正常导航会导致我感到奇怪的崩溃
我有一个简单的标签视图:
struct FFTabView: View {
var body: some View {
TabView {
LibraryView2()
}
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
.navigationBarTitle("", displayMode: .inline)
}
}
// MARK: -
struct LibraryView2: View {
var body: some View {
VStack {
NavigationLink(destination: Foo()) {
Text("go to foo")
}
}
.tabItem {
Image(systemName: "square.grid.2x2.fill")
Text("Skill Library")
}
}
}
struct Foo: View {
var body: some View {
Text("foo view")
}
}
当我通过导航栏返回时,从Foo
崩溃:Tried to pop to a view controller that doesn't exist
知道这里发生了什么吗?我找不到与此和SwiftUI相关的任何内容,因此我想发布。谢谢
答案 0 :(得分:1)
尽管您未指定,但我假设您的FFTabView
包裹在NavigationView
中。
最终,您的视图层次看起来像
NavigationView {
TabView {
NavigationLink {
...
}
}
}
如果您重构视图层次结构,就像
TabView {
NavigationView {
NavigationLink {
...
}
}
}
崩溃不会发生。
编辑: 我已经确认它与Xcode 11.2中引入的this answer中讨论的回归/错误有关。您的原始代码在Xcode 11.1中可以正常工作。