Swift XCode自定义警报通知
我是xcode的新手(如果我在这篇文章中的措辞有误,我深表歉意),但当用户已经在我的解析数据库中注册时,我正试图在我的xcode应用程序中创建一个自定义警报弹出窗口。到目前为止,我有:Swift XCode自定义警报通知,swift,xcode,alerts,Swift,Xcode,Alerts,我是xcode的新手(如果我在这篇文章中的措辞有误,我深表歉意),但当用户已经在我的解析数据库中注册时,我正试图在我的xcode应用程序中创建一个自定义警报弹出窗口。到目前为止,我有: import UIKit import Parse class LoginViewController: UIViewController { @IBOutlet weak var usernameField: UITextField! @IBOutlet we
import UIKit
import Parse
class LoginViewController: UIViewController {
@IBOutlet weak var usernameField: UITextField!
@IBOutlet weak var passwordField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func onLogin(_ sender: Any) {
let username = usernameField.text!
let password = passwordField.text!
PFUser.logInWithUsername(inBackground:username, password:password) {
(user, error) in
if user != nil {
self.performSegue(withIdentifier: "loginSegue", sender: nil)
} else {
// The login failed. Check error to see why.
}
}
}
@IBAction func onSignup(_ sender: Any) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(identifier: "Register")
vc.modalPresentationStyle = .overFullScreen
present(vc, animated: true)
}
/*------ Handle text field inputs ------*/
func usernameAndPasswordNotEmpty() -> Bool {
return usernameField.text!.isEmpty || passwordField.text!.isEmpty
}
/*------ Alert Controllers ------*/
// Text fields are empty alert controller
func displayError() {
let title = "Error"
let message = "Username and password field cannot be empty"
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
// create an OK action
let OKAction = UIAlertAction(title: "OK", style: .default)
// add the OK action to the alert controller
alertController.addAction(OKAction)
present(alertController, animated: true)
}
// Login error alert controller
func displayLoginError(error: Error) {
let title = "Login Error"
let message = "Oops! Something went wrong while logging in: \(error.localizedDescription)"
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
// create an OK action
let OKAction = UIAlertAction(title: "OK", style: .default)
// add the OK action to the alert controller
alertController.addAction(OKAction)
present(alertController, animated: true)
}
}
当我在模拟器上运行代码时,如果我(例如)只单击带有空文本字段的登录,则不会弹出自定义警报。我不确定我做错了什么。
谢谢你为什么警报会“弹出?”你从来没有告诉过它。当我运行代码并尝试提交一个空文本字段进行登录时,我希望会弹出一个警报,说:;用户名和密码字段不能为空,因为我创建了一个函数,该函数在该事件发生时显示错误,您告诉该函数在何处运行?例如,我看到您有一个名为
displayError
的func
。但是你从未调用过这个函数,所以它从未运行过。未调用的函数是一种异味;如果你从来不打电话,那是干什么的?我可能知道如何系鞋带,但如果我从不系鞋带,鞋带会一直解开,我的知识也没用。在displayError前面添加@iAction和其他功能会有帮助吗?我已经试过了,但还是不起作用