首页 > 解决方案 > 我可以通过 ChildView 中的按钮将 ParentView 导航到另一个视图吗?,swiftUI

问题描述

我是 SwiftUI 的新手,并且正在努力通过单击 ChildView 中的 Text() 将 MainView 移动到 LoginView。

我尝试像这段代码一样制作 NavigationView 和 NavigationLink 但它不起作用。它在实际代码中要复杂得多,但我只展示我的代码的简单结构来解释。

struct ContentView: View {
  @State private var currViewIdx: Int = 0

  var body: some View {
    NavigationView {
      CurrentView(currViewIdx: $currViewIdx)
    }
  }
}

struct CurrentView: View {
  @Binding var currViewIdx: Int

  var body: some View {
    if self.currViewIdx == 0 {
      HomeView()
        .onTapGesture {
            self.currViewIdx = 0
        }
    } else {
      //SomeView.onTapGesture(self.currViewIdx = 1)
    }
  }
}

struct HomeView: View {
  var body: some View {
    NavigationLink(destination: TestView()) {
      Text("Go TestView")
        .contentShape(Rectangle())
    }
  }
}

struct TestView: View {
  var body: some View {
    Text("Here is Test View")
  }
}

我认为,顶级层次结构视图 ContentView 具有 NavigationView,当我在 HomeView 中单击 Text("Go TestView") 时应该更改它,因为它位于 NavagationLink 中。

但是尽管我触摸了 Text("Go TestView"),但 ContentView 并没有更改为 TestView。如何解决这个问题呢?我考虑过添加一个状态值来更改顶级视图的方法,但是如果我要创建更多值似乎不太好

谢谢

标签: iosswiftnavigation

解决方案


推荐阅读