gpt4 book ai didi

swiftui - 多级导航 SwiftUI

转载 作者:行者123 更新时间:2023-12-04 15:42:40 31 4
gpt4 key购买 nike

我有一个在 SwiftUI 中处理的主细节应用程序,但是一旦在第一个 DetailView 上,NavBar 中的 NavigationLink 就不再有效。我把它写成一个简单的演示:

struct NavView: View {
var body: some View {
NavigationView {
NavigationLink(destination: Layer()) {Text("Go to Layer 1")}
}
}
}

struct Layer: View {
var body: some View {
Text("Welcome to Layer 1")
.navigationBarItems(trailing: NavigationLink(destination: AnotherLayer()) { Text("Go to Layer 2") })
}
}

struct AnotherLayer: View {
var body: some View {
Text("Welcome to Layer 2")
}
}

一切都呈现出来,你可以点击 Layer 中的 navigationBarItem 但没有任何反应。

这是怎么回事?如何访问 AnotherLayer

最佳答案

用作 navigationBarItem 的 NavigationLink 将不起作用,无论您是在第一级还是第二级使用它,但 NavigationDestinationLink 可以解决问题。

import SwiftUI

struct TestSwift: View {
var body: some View {
NavigationView {
NavigationLink(destination: Layer()) {Text("Go to Level")}
}
}
}

struct Layer: View {
let detailView = NavigationDestinationLink(AnotherLayer())

var body: some View {
VStack {
Text("Text")

}
.navigationBarItems(trailing:
Button(action: {
self.detailView.presented?.value = true
}, label: {
Text("Present Now!")
})
)
}
}

struct AnotherLayer: View {

var body: some View {
Text("Hello")
}
}

关于swiftui - 多级导航 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57256864/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com