[英]Passing Data through View Controllers with Swift without Using 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.