ios - 我可以通过 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。如何解决这个问题呢?我考虑过添加一个状态值来更改顶级视图的方法,但是如果我要创建更多值似乎不太好
谢谢
解决方案
推荐阅读
- testing - Clojure - 如何在实现中检测另一个协议
- angular - 将变量分配为数组中的键
- php - 使用 php 查找数组的第一个元素并将其添加到活动类以使用 bootstrap.js 创建选项卡系统
- ruby - 从数组中创建散列,其中值是元素的索引
- android - Kotlin Activity 将书写顺序从左到右更改为从右到左(带有不同语言的电话)
- scala - 与输入字符串匹配的字符串列表
- pom.xml - 我在这个 POM 中的错误是什么以及在哪里?
- python - Pygame 无法加载 PNG 图像
- python - Python 的 time.time 函数在全球范围内的准确性如何?
- jquery - 下拉菜单立即打开