到目前为止,我有一个完全使用 UIKit 构建的应用程序。但是,我希望能够开始实现一些 SwiftUI 视图来替换一些 UIViewController。
我已经能够通过点击按钮从 UIViewController 导航到 SwiftUI 视图:
@IBAction func buttonTapped(_ sender: Any) {
let newView = UIHostingController(rootView: SwiftUIView(viewObj: self.view, sb: self.storyboard, dismiss: self.dismiss) )
view.window?.rootViewController = newView
view.window?.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何从单个 SwiftUI 视图过渡到 UIViewController?(因为应用程序的其余部分都在 UIKit 中)?我在 SwiftUI 视图中有一个按钮,可以在点击时导航回 UIViewController。我试过了:
view和storyboard对象传递给 SwiftUI 视图,然后调用执行类似于上面代码的操作来更改当前视图控制器。但是,在模拟器上尝试时没有任何反应。.present以显示SwiftUI观模态。这有效,我可以允许 SwiftUI 视图.dismiss自己使用。但是,这只适用于模态,我希望使其正常工作(即更改屏幕)这是我的简单 SwiftUI 视图:
struct SwiftUIView: View {
var viewObj:UIView? // Perhaps use this for transition back?
var sb:UIStoryboard?
var dismiss: (() -> Void)?
var …Run Code Online (Sandbox Code Playgroud) 我已经好奇了很长时间了,但是建议在 firestore 的文档中保存id字段吗?既然我们已经在 firestore 中拥有一个唯一的 documentId 存储?
此外,当使用电子邮件对用户进行身份验证时,结果会返回一个uid,并且在在线教程中它被保存为用户文档中的一个字段。我很困惑为什么这是必要的,因为我们已经有了用户的 documentId。