請問我們如何在不使用 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)
}
}
}
納克斯
uj5u.com熱心網友回復:
在NavigationLink有isActive引數。您可以在 init 中傳遞它,NavigationLink當此狀態變數具有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")
}
}
uj5u.com熱心網友回復:
您需要做的是擁有一個@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()
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/337251.html
