[英]How Can I Pass the Value of A Textfield to a Button Clicked Function in Swift?
我需要在按下登錄按鈕時執行用戶名和登錄檢查。 我需要在沒有故事板的情況下完成所有這些工作。 但是,我的問題是,當我創建一個連接到函數的按鈕時,文本字段就超出了范圍。
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
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
inputsPassword和inputsUsername都顯示在范圍之外
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 {
}
}
您應該將usernameField
和passwordField
聲明為類中的屬性,這樣您就可以從多個方法訪問它們。 例如:
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 {
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.