Кнопка возврата в UIViewControllerRepresentable переходит в корневой вид вместо возврата к предыдущему виду
У меня есть приложение SwiftUI с тремя уровнями:
- Основной список (SwiftUI NavigationView)
- Вторичный список (SwiftUI NavigationView)
- UIViewControllerRepresentable
В моем дополнительном списке есть
NavigationLink(destination: ARView(museum: self.museum)) {
Image(systemName: "camera.viewfinder")
})
И затем в UIViewControllerRepresentable у меня есть
struct ARView: UIViewControllerRepresentable {
var museum:Museum?
var work:Work?
func makeUIViewController(context: UIViewControllerRepresentableContext<ARView>) -> UIViewController {
let ARVC = ARViewController(nibName: "ARViewController", bundle: .main)
if let museum = museum {
ARVC.visitedMuseum = museum
ARVC.ARExperience = false
LoggingSystem.push(eventLog: ["event":"AR opened","museum":ARVC.visitedMuseum.name], verbose: false)
}
if let work = work {
ARVC.visitedWork = work
ARVC.VRonly = true
LoggingSystem.push(eventLog: ["event":"Work selected","work":ARVC.visitedWork.name], verbose: false)
}
return ARVC
}
func updateUIViewController(_ uiViewController: UIViewController, context: UIViewControllerRepresentableContext<ARView>) {
}
}
Появившаяся кнопка возврата должна вернуться к дополнительному списку, но вместо этого она вернется к основному списку.
1 ответ
Я решил свою проблему! Ссылка NavigationLink на мой UIViewControllerRepresentable была в NavigationBar, и это испортило иерархию.
Я переместил NavigationLink за пределы панели навигации, и теперь он работает должным образом.