簡體   English   中英

Swift 在不使用 StoryBoard 的情況下通過單擊按鈕轉到視圖

[英]Swift go to a view by clicking on a button without using StoryBoard

請教我們如何在不使用 StoryBoard 或控制器的情況下通過單擊按鈕進入視圖。 我只使用視圖

如果用戶點擊 connexionBtnView 我想將他們重定向到 AdminView 或 UserView


import SwiftUI

struct ConnexionView: View {
    
    @State var loginId: String  = ""
    @State var pwd: String  = ""
    @StateObject private var keyboardHander = KeyBoardHandler()
    
    var body: some View {
        
        NavigationView{
            
            ZStack{
                
                Image("background")
                    .ignoresSafeArea()
                
                VStack (spacing: 15){
                    
                    Spacer()
                    logoView
                    Spacer()
                    titleView
                    loginIdView
                    loginPwdView
                    connexionBtnView 
                    Spacer()
                    NavigationLink {
                        LostPwdView()
                    } label: {
                        lostPwd
                    }
                    Spacer()
                }.frame(maxHeight: .infinity)
                    .padding(.bottom,keyboardHander.keyboardHeight)
                    .animation(.default)
                
                
            }
            
        }
        
    }

納克斯

NavigationLink具有isActive參數。 您可以在NavigationLink的 init 中傳遞它,當此狀態變量具有true值時,您將重定向到另一個視圖。 詳情請看這里

struct ConnexionView: View {
    
    @State var isActive: Bool = false
    
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(isActive: $isActive) {
                    LostPwdView()
                } label: {
                    Text("Some Label")
                }
                Button("Tap me!") {
                    isActive = true
                }
            }
        }
    }
}

struct LostPwdView: View {
    var body: some View {
        Text("Hello")
    }
}

你需要做的是有一個@State變量來觸發導航:

.fullScreenCover(
    isPresented: $viewShown
) {
    print("View dismissed")
} content: {
    NextView()
}

其中NextView()是您要顯示的視圖,而viewShown是您的狀態變量,下面是完整示例:

struct ExampleView: View {
    
    @State var isNextPageOpen = false
    
    var body: some View {
         Button("Tap Here To Navigate") {
             isNextPageOpen = true
         }
         .fullScreenCover(
             isPresented: $isNextPageOpen
         ) {
             print("View dismissed")
         } content: {
             NextView()
         }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM