我有一个列表视图。如果我选择其中一行,我可以移动到详细信息视图。但有一个问题。在列表视图中,我使用 NavigationView 通过 NavigationLink 跳转到详细视图。详细信息视图中有一个后退按钮,我想将另一个按钮设置为另一个视图,我可以在其中添加一些数据。但有一个问题。我看到后退按钮,但没有按钮可以查看可以添加数据的位置。我知道它与 NavigationView 有关,但我不知道如何解决。我从详细信息视图中删除了 NavigationView,但仍然无法将按钮设置为 NavigationBar 中的另一个视图。
DataView(详细视图): 如您所见,导航栏中没有按钮。我想将它设置在与车辆后退按钮相同的行中。
StartView(列表视图):
import SwiftUI
struct StartView: View {
@ObservedObject var viewModel: StartViewModel
var addVehicleViewModel: AddVehicleViewModel
@State var showSheetView = false
var body: some View {
NavigationView {
List(viewModel.vehicles) { vehicle in
NavigationLink(destination: DetailView(vehicle: vehicle)) {
StartRow(vehicle: vehicle)
}
}
.navigationBarTitle("Vehicles")
.onAppear(perform: {
UITableView.appearance().separatorStyle = .none
self.viewModel.fetchVehicles()
})
.navigationBarItems(trailing:
Button(action: {
self.showSheetView.toggle()
}, label: {
Text("+").font(.system(size: 43))
})
.sheet(isPresented: $showSheetView) {
AddVehicleView(viewModel: self.addVehicleViewModel)
}
)
}
}
}
DataView(详细信息视图 - 有一个 TabView,这是不同名称的原因):
import SwiftUI
struct DataView: View {
var vehicle: Vehicle
@State var showSheetView = false
var body: some View {
NavigationView {
VStack() {
Color.red
Button(action: {
self.showSheetView.toggle()
print("DataView TAPPED")
}, label: {
Text("+").font(.system(size: 43))
})
.sheet(isPresented: $showSheetView) {
RefuelingListView()
}
}
}
.navigationBarTitle(vehicle.model)
}
}