我正在 SwiftUI 的详细视图中寻找有关禁用导航栏项目的帮助。
import SwiftUI
struct ContentView: View {
//2 dimentionary lists
var twoDimensionArray = [[1,2,3,4,5], [10,20,30,40,50], [33,55,66,77,88]]
var body: some View {
NavigationView{
VStack{
// Go through 2 dimensionary lists using both list and scrollview
List {
ForEach(twoDimensionArray, id: \.self) { itemList in
VStack(alignment: .leading, spacing: 20){
ScrollView(.horizontal, showsIndicators: false){
HStack{
ForEach(itemList, id: \.self) { item in
NavigationLink(destination: listDetailView()) {
Text(String(item))
}
}
}
}
}
}
}
}
}
}
}
struct listDetailView: View{
var body: some View {
Text("Test")
.navigationBarTitle(Text("Manage Inspection"), displayMode: .inline)
//The problematic navigation bar items that is inactive//
.navigationBarItems(trailing: Button(action: {
print("Test")
}
) {
Image(systemName: "plus.circle")
.font(.largeTitle)
})
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
问题:
基本上,当我从父视图导航到详细视图时,详细视图中的自定义导航栏项目以某种方式被禁用和不活动。
我尝试了多种方法但无法使其正常工作,程序的基本结构是:ContentView
-> NavigationView
-> List
-> ScrollView
-> ListDetails View
-> Navigation bar items
(不活动且不工作)
奇怪的是,如果我从父List View 更改为另一个ScrollView,那么它工作正常:
但是,由于另一个依赖于 ListView 的函数,我必须使用 ListView 作为这种情况的父视图。
在这种情况下,如何使导航栏尾随项处于活动状态?