Нажать UIViewController из SwiftUI с помощью UINavigation с кнопкой «Назад»?

Мне нужно открыть UIViewController из SwiftUI с UINavigation с кнопкой возврата.

В настоящее время я реализовал это через ViewControllerRepresentable и NavigationLink, он работает, но у меня есть две навигации SwiftUI (NavigationLink с кнопкой возврата) и UINavigation по умолчанию без кнопки возврата, и я хотел бы выполнить, чтобы моя UINavigation по умолчанию с кнопкой возврата и скрыть SwiftUI (NavigationLink) навигация.

struct UIKitVc : UIViewControllerRepresentable {


   let navigationController =  UINavigationController()

   func updateUIViewController(_ uiViewController: UINavigationController, context: Context) {
   }


   func makeUIViewController(context: Context) -> UINavigationController {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: "SearchResult") as! SearchResultViewController
      self.navigationController.addChild(viewController)

        return self.navigationController
   }
}


NavigationLink(destination: UIKitVc(){}

Заранее спасибо.


person Bumaza    schedule 09.10.2020    source источник


Ответы (1)


Если вы собираетесь использовать NavigationView/NavigationLink, тогда вам не нужно использовать UINavigationController, просто используйте представимый вместо своего UIViewController, например

struct UIKitVc : UIViewControllerRepresentable {


   func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
   }

   func makeUIViewController(context: Context) -> UIViewController {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: 
            "SearchResult") as! SearchResultViewController

        // ... make additional set up here if needed

        return viewController
   }
}
person Asperi    schedule 09.10.2020
comment
Да, конечно, но мне нужен только UINavigationController, поскольку мой SearchResultViewController имеет некоторую настраиваемую UINavigationBar. - person Bumaza; 09.10.2020