我已将我的登录 View Controller 重写为 SwiftUI View
. SignInView
包裹在 UIHostingController
中子类 ( final class SignInViewController: UIHostingController<SignInView> {}
),并在需要登录时以模态方式全屏显示。
一切正常,除了我不知道如何关闭 SignInViewController
来自 SignInView
.我试过添加:
@Environment(\.isPresented) var isPresented
在
SignInView
并将其分配给 false
当登录成功时,但这似乎无法与 UIKit 互操作。我怎样才能关闭 View ?
最佳答案
我发现了另一种似乎效果很好的方法,并且感觉比其他一些方法更简洁。脚步:
dismissAction
SwiftUI View 的属性:struct SettingsUIView: View {
var dismissAction: (() -> Void)
...
}
dismissAction
当您想关闭 View 时:Button(action: dismissAction ) {
Text("Done")
}
let settingsView = SettingsUIView(dismissAction: {self.dismiss( animated: true, completion: nil )})
let settingsViewController = UIHostingController(rootView: settingsView )
present( settingsViewController, animated: true )
关于ios - 关闭包含在 UIHostingController 中的 SwiftUI View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57190511/