【发布时间】:2021-04-26 04:39:25
【问题描述】:
似乎很明显,当我同时使用 TabView 和 NavigationView 时 - Pop To Root 不起作用。 这是我实现的两个测试代码。一种同时具有 tabView 和 NavigationView,一种仅具有 Navigation View。
- 包含 TabView 和 NavigationView 的代码
import SwiftUI
class Views: ObservableObject {
@Published var stacked = false
}
struct ContentView: View {
@ObservedObject var views = Views()
@State var selection: Int = 0
var body: some View {
NavigationView {
TabView(selection: $selection) {
ContentView2()
}
}
.environmentObject(views)
}
}
struct ContentView2: View {
@EnvironmentObject var views: Views
var body: some View {
NavigationLink(destination: ContentView3(), isActive: $views.stacked) {
Text("Go to View 2")
}
.isDetailLink(false)
}
}
struct ContentView3: View {
@EnvironmentObject var views: Views
var body: some View {
VStack {
Button("Pop to root") {
self.views.stacked = false
}
}
.navigationBarTitle("View 3")
}
}
- 仅代码导航视图
- 只需从代码中删除
TabView括号,它就可以像魅力一样工作......
当我尝试在 tabview 中弹出到 root 时,会显示一个日志
Trying to pop to a missing destination at /Library/Caches/com.apple.xbs/Sources/Monoceros/Monoceros-120/Shared/NavigationBridge_PhoneTV.swift:341
有没有人找到办法顶 TabView 和 NavigationView,并实现 pop To Root?
【问题讨论】:
标签: ios swift navigation combine