gpt4 book ai didi

ios - 如何在 Swift 中将文本字段的值传递给单击按钮的函数?

转载 作者:搜寻专家 更新时间:2023-10-31 22:47:36 25 4
gpt4 key购买 nike

我需要在按下登录按钮时执行用户名和登录检查。我需要在没有 Storyboard的情况下完成所有这些。但是,我的问题是,当我创建一个连接到函数的按钮时,文本字段就超出了范围。

覆盖函数 viewDidLoad() { super.viewDidLoad()

        let Login = UIButton()
makeButton(Login, name: "Login", location: CGRectMake((screenSize.width-120)/2, 5*screenSize.width/6, 120, 30))
Login.addTarget(self, action: "loginChecks", forControlEvents: .TouchUpInside)


// Makes Text Fields
let usernameField: UITextField = UITextField()
makeTextField(usernameField, frame: CGRectMake((screenSize.width-300)/2 + 300, 175, 300, 35))

let passwordField: UITextField = UITextField()
makeTextField(passwordField, frame: CGRectMake((screenSize.width-300)/2 + 300, 350, 300, 35))

// Makes Text Labels
let usernameLabel: UILabel = UILabel()
makeLabel(usernameLabel, name: "Username", frame: CGRectMake((screenSize.width-300)/2 - 300, 175, 300, 55))

let passwordLabel: UILabel = UILabel()
makeLabel(passwordLabel, name: "Password", frame: CGRectMake((screenSize.width-300)/2 - 300, 350, 300, 55))

self.configureView()

}

** 这是 ViewDidLoad 之外的独立函数 **

func loginChecks(){
// Checks login logic

inputedPassword 和 inputedUsername 似乎都在范围之外

            var inputtedPassword = passwordField.text
var inputtedUsername = usernameField.text
print(inputtedUsername)
print(inputtedPassword)

if (inputtedUsername == ""){
makeAlert("No Username", message: "Please input a username.", printStatement: "No username")
return
} else if(inputtedPassword == ""){
makeAlert("No Password", message: "Please input a password.", printStatement: "No password")
return
} else {

}

}

最佳答案

您应该将 usernameFieldpasswordField 声明为类中的属性,这样您就可以从多个方法访问它们。例如:

class ViewController: UIViewController {

let usernameField: UITextField = UITextField()
let passwordField: UITextField = UITextField()

override func viewDidLoad() {
super.viewDidLoad()

let Login = UIButton()
makeButton(Login, name: "Login", location: CGRectMake((screenSize.width-120)/2, 5*screenSize.width/6, 120, 30))
Login.addTarget(self, action: "loginChecks", forControlEvents: .TouchUpInside)


// Makes Text Fields
makeTextField(usernameField, frame: CGRectMake((screenSize.width-300)/2 + 300, 175, 300, 35))

makeTextField(passwordField, frame: CGRectMake((screenSize.width-300)/2 + 300, 350, 300, 35))

// Makes Text Labels
let usernameLabel: UILabel = UILabel()
makeLabel(usernameLabel, name: "Username", frame: CGRectMake((screenSize.width-300)/2 - 300, 175, 300, 55))

let passwordLabel: UILabel = UILabel()
makeLabel(passwordLabel, name: "Password", frame: CGRectMake((screenSize.width-300)/2 - 300, 350, 300, 55))

self.configureView()
}

func loginChecks(){
// Checks login logic
var inputtedPassword = passwordField.text
var inputtedUsername = usernameField.text
print(inputtedUsername)
print(inputtedPassword)

if (inputtedUsername == ""){
makeAlert("No Username", message: "Please input a username.", printStatement: "No username")
return
} else if(inputtedPassword == ""){
makeAlert("No Password", message: "Please input a password.", printStatement: "No password")
return
} else {

}
}

关于ios - 如何在 Swift 中将文本字段的值传递给单击按钮的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502806/

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