gpt4 book ai didi

ios - 关闭包含在 UIHostingController 中的 SwiftUI View

转载 作者:行者123 更新时间:2023-12-01 09:57:43 33 4
gpt4 key购买 nike

我已将我的登录 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")
    }
  • 当你呈现 View 时,为它提供一个解除处理程序:
  • 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/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com