我有一个按照 SwiftUI 生命周期创建的 SwiftUI 应用程序。我能够毫无问题地推送新视图,但我不知道如何替换视图。我需要实现的是我能够使用此代码在 AppDelegate 生命周期中执行的操作
let bounds = UIScreen.main.bounds
self.window = UIWindow(frame: bounds)
self.window?.rootViewController = rootViewController
self.window?.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)
我尝试在推送新视图时替换根视图并忽略旧视图,但我找不到可行的解决方案。
我尝试使用
presentationMode.wrappedValue.dismiss()
Run Code Online (Sandbox Code Playgroud)
但如果我尝试在推送新视图之前或之后关闭该视图,则它不起作用。
我不知道我是否遗漏了一些东西。
编辑
我尝试使用 ViewGroup 来实现该解决方案
import SwiftUI
// Specify all root level screens
enum Screen {
case login
case users
}
@main
struct IosstarterkitApp: App {
var loginV: AnyView
var userV: AnyView
// Use @State for current screen
@State var screen: Screen = .login
init() {
// instantiate the factory for the dependency injection
let baseProviderFactory: BaseProviderProtocol …Run Code Online (Sandbox Code Playgroud)