Ios SwiftUI TabView和NavigationView混合-弹出到根目录';行不通
显然,当我同时使用TabView和NavigationView时,Pop-To-Root不起作用。 这是我实现的两个测试代码。一个同时具有tabView和NavigationView,一个仅具有Navigation视图Ios SwiftUI TabView和NavigationView混合-弹出到根目录';行不通,ios,swift,navigation,combine,Ios,Swift,Navigation,Combine,显然,当我同时使用TabView和NavigationView时,Pop-To-Root不起作用。 这是我实现的两个测试代码。一个同时具有tabView和NavigationView,一个仅具有Navigation视图 同时使用TabView和NavigationView进行编码 仅代码导航视图 只需从代码中删除TabView括号,它的工作方式就像魅力一样 当我尝试在tabview中弹出到根目录时,会显示一个日志 试图在/Library/Caches/com.apple.xbs/Source
- 只需从代码中删除
括号,它的工作方式就像魅力一样TabView
试图在/Library/Caches/com.apple.xbs/Sources/Monoceros/Monoceros-120/Shared/NavigationBridge\u PhoneTV.swift:341跳转到丢失的目的地
是否有人找到了在TabView和NavigationView顶部实现pop到根目录的方法?尝试一下:
import SwiftUI
struct ContentView: View {
@State var isActive : Bool = false
var body: some View {
NavigationView {
NavigationLink(
destination: ContentView2(rootIsActive: self.$isActive),
isActive: self.$isActive
) {
Text("Hello, World!")
}
.isDetailLink(false)
.navigationBarTitle("Root")
}
}
}
struct ContentView2: View {
@Binding var rootIsActive : Bool
var body: some View {
NavigationLink(destination: ContentView3(rootIsActive: self.$rootIsActive)) {
Text("Hello, World #2!")
}
.isDetailLink(false)
.navigationBarTitle("Two")
}
}
struct ContentView3: View {
@Binding var rootIsActive : Bool
var body: some View {
NavigationLink(destination: ContentView4(shouldPopToRootView: self.$rootIsActive)) {
Text("Hello, World #3!")
}
.isDetailLink(false)
.navigationBarTitle("Three")
}
}
struct ContentView4: View {
@Binding var shouldPopToRootView : Bool
var body: some View {
VStack {
Text("Hello, World #4!")
Button (action: { self.shouldPopToRootView = false } ){
Text("Pop to root")
}
}.navigationBarTitle("Four")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import SwiftUI
struct ContentView: View {
@State var isActive : Bool = false
var body: some View {
NavigationView {
NavigationLink(
destination: ContentView2(rootIsActive: self.$isActive),
isActive: self.$isActive
) {
Text("Hello, World!")
}
.isDetailLink(false)
.navigationBarTitle("Root")
}
}
}
struct ContentView2: View {
@Binding var rootIsActive : Bool
var body: some View {
NavigationLink(destination: ContentView3(rootIsActive: self.$rootIsActive)) {
Text("Hello, World #2!")
}
.isDetailLink(false)
.navigationBarTitle("Two")
}
}
struct ContentView3: View {
@Binding var rootIsActive : Bool
var body: some View {
NavigationLink(destination: ContentView4(shouldPopToRootView: self.$rootIsActive)) {
Text("Hello, World #3!")
}
.isDetailLink(false)
.navigationBarTitle("Three")
}
}
struct ContentView4: View {
@Binding var shouldPopToRootView : Bool
var body: some View {
VStack {
Text("Hello, World #4!")
Button (action: { self.shouldPopToRootView = false } ){
Text("Pop to root")
}
}.navigationBarTitle("Four")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}