如何解决从SwiftUI用带有后退按钮的UINavigation推送UIViewController?
我需要使用带有后退按钮的UINavigation从SwiftUI打开UIViewController。
目前,我已经通过ViewControllerRepresentable和NavigationLink实现了它的工作,但是我有两个Navigation 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(){}
谢谢。
解决方法
如果您要使用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
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。