gpt4 book ai didi

ios - 如何在 SwiftUI 中检查按钮点击时 TextField 的验证(不是通过使用 NavigationLink)?

转载 作者:行者123 更新时间:2023-11-28 13:31:34 24 4
gpt4 key购买 nike

我想在推送到下一个屏幕之前验证我的 TextField“用户名”和 TextField“密码”不为空。在 SwiftUI 中可以吗?

我在 Swift 中做的例子:-

@IBAction func btnSignInTapped(_ sender: UIButton) {
if (String.isStringEmpty(aString: getString(anything: tfUserName.text))) {
//Error message
return
} else if (String.isStringEmpty(aString: getString(anything: tfPassword.text))) {
//Error message
return
} else {
//Push screen
}
}

同样,我如何在 SwiftUI 中做到这一点?

最佳答案

一旦您接受了 SwiftUI 的“声明式”特性,就很容易做到。这是一个 Swift Playground ,展示了一种非常准系统的方法:

import SwiftUI
import PlaygroundSupport


struct ContentView : View {

@State private var email: String = ""
@State private var password: String = ""

private var validated: Bool {
!email.isEmpty && !password.isEmpty
}

var body: some View {
Group {
TextField("email", text: $email)
TextField("password", text: $password)

if validated {
Button("Login") {
print("Logging in")
}
}
}
}
}

PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())

基本上,您不在 TextField 上工作,而是在 @State 上工作,并指示 UI 仅在满足条件时显示按钮。

当然,如果验证比我们这里的更复杂,您可能希望改用 View-Model 对象。

关于ios - 如何在 SwiftUI 中检查按钮点击时 TextField 的验证(不是通过使用 NavigationLink)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57249217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com