我刚开始学习SwiftUI,我必须在SwiftUI中管理以下导航堆栈,

Here is my first entry of the app :-

import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup {
      Landing()
    }
  }
}

here is the Landing Page :-

struct Landing: View {
    var body: some View {
        NavigationStack {
            HStack(spacing: 13) {
                NavigationLink {
                    Login()
                } label: {
                    DetezoMainNavigationBtn(title: LandingScreenTexts.logIn)
                }
            }
        }
    }
}

here is my Login Page :-

struct Login: View {
    @State var isSignInClicked = false
    var body: some View {
        NavigationStack {
            
            DetezoMainButton(title: LoginScreenTexts.logIn, acttion:         {
                isSignInClicked = true
            })
            
        }
        .navigationDestination(isPresented: $isSignInClicked, destination: {
            MyZone()
        })
    }
}

好吧,这里是我的最低要求是当我点击登录从着陆页,然后滑动到后面的手势和导航回来应该工作. 但是,当我点击登录页面上的登录按钮,然后滑动到后面的手势和导航回来不应该工作.和导航堆栈应重置和我的区域页面应该是导航堆栈的新父

推荐答案

在您的Login视图中,您不需要第二个NavigationStack.此屏幕将被推送到Landing视图中的堆栈上.

只要go 掉它,它就会工作得很好.

编写此代码的更好方法可能是从LandingScreen的…中删除NAV堆栈

import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {

    @State var isLoggedIn = false

    WindowGroup {
      if isLoggedIn {
        NavigationStack {
          MainScreen()
        }
      } else {
        NavigationStack {
          Landing()
        }
      }
    }
  }
}

struct Landing: View {
    var body: some View {
        HStack(spacing: 13) {
            NavigationLink {
                Login()
            } label: {
                DetezoMainNavigationBtn(title: LandingScreenTexts.logIn)
            }
        }
    }
}

struct Login: View {
// etc
}

Ios相关问答推荐

Firebase SDK 10+—无法安装软件包

通过在SWIFT中不起作用的泛型传递协议一致性类型

不使用iOS 17修改器修改SWIFT用户界面视图

围绕对象旋转和移动相机不起作用Swift SceneKit

如何在SwiftUI中为带有CornerRadius的矩形创建下边框?

如何在 Android 上的 Flutter 应用中录制内部音频?

如何使用 pushViewController 从 UIHostingController 的 SwiftUI 视图中推送 ViewController?

iOS - 判断开发者模式是否开启 (Swift)

我无法使用 Swift 将文件上传到 firebase

iOS,Swift 5,AppDelegate open url / .onOpenUrl - 如何找到调用我的自定义方案的调用应用程序

在 Swift 中按下返回键时在文本字段之间切换

Swift 错误:在其自己的初始值中使用的变量

通过touch 传递到下面的 UIViews

在代码生成的 UIView 上绘制 UIBezierPath

如何启用滑动以删除 TableView 中的单元格?

用户拒绝使用后如何提示用户打开位置服务

如何计算 Swift 数组中元素的出现次数?

UITextView 内容插图

Xcode中的终端窗口?

将 struct 保存到 UserDefaults