小编dav*_*ain的帖子

Swift UI 生命周期:如何用新视图替换当前视图?不是简单地推动它

我有一个按照 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)

ios swift swiftui

2
推荐指数
1
解决办法
1666
查看次数

标签 统计

ios ×1

swift ×1

swiftui ×1