Кнопка возврата в 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 за пределы панели навигации, и теперь он работает должным образом.

Другие вопросы по тегам