Swift 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

我是xcode的新手(如果我在这篇文章中的措辞有误,我深表歉意),但当用户已经在我的解析数据库中注册时,我正试图在我的xcode应用程序中创建一个自定义警报弹出窗口。到目前为止,我有:


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和其他功能会有帮助吗?我已经试过了,但还是不起作用