为了将SwiftUI视图和Storyboard合并,我已经从故事板创建了一个segue到一个SwiftUI视图,但目前无法返回。
我不想通过导航栏来实现这一点,而是在我的SwiftUI视图中的一个按钮,该按钮将segue解压回main.storyboard视图。

到目前为止,我实现结果的方式是使用SwiftUI视图作为托管控制器,然后从添加一个segue到子主机控制器。
我想解开的按钮如下所示:
Button(action: {
print("button pressed") // UNWIND SEGUE HERE
}) {
Image("TopLeft")
.renderingMode(.original)
.resizable()
.scaledToFit()
.frame(width: 15, height: 15)
}
}此代码链接到一个名为SecondView的类,即SwiftUI代码。SecondView由子类ChildHostingController激活,该子类链接到故事板上的UIHostingController:
class ChildHostingController: UIHostingController<SecondView> {
required init?(coder: NSCoder) {
super.init(coder: coder,rootView: SecondView());
}
override func viewDidLoad() {
super.viewDidLoad()
}
}是否有任何可能的方法来解除这个海格回到视图控制器?
非常感谢!!
发布于 2022-04-13 15:25:08
一种可能的方法是通过视图模型将带有从视图控制器展开操作的闭包注入到SwiftUI视图中,并在SwiftUI视图按钮中调用它。
以下是主要部分:
super.init(coder: coder, rootView: SecondView(vm: viewModel))
viewModel.unwind = { [weak self] in
// call unwind segue created in storyboard
self?.performSegue(withIdentifier: "unwind_segue_identifier", sender: self)
}完全这里的发现和代码
https://stackoverflow.com/questions/71858403
复制相似问题