Я работаю над приложением, в котором есть LoginViewController и HomeViewController. Я хочу перейти к HomeViewController только в случае успешного входа в систему. Я читал об использовании программы Segue программно, а не о ее подключении к раскадровке, но у меня есть проблема, с которой мне хотелось бы, чтобы вы мне помогли, я новичок в Swift.
Этот код работает отлично, за исключением того, что когда пользователь вводит правильную электронную почту и пароль пользователя, он вылетает и говорит Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Receiver LoginViewController не имеет перехода с идентификатором« testSeg »*
Я знаю, что я еще не определил 'testSeg', но я не знаю, где это сделать. Если я подключаю переход от раскадровки, он переходит на домашнюю страницу, даже если данные для входа не верны, и даже если я даю ему идентификатор из инспектора идентификации. Пожалуйста, помогите, проверив мой код LoginViewController ниже
// Это мой код для входа в систему, не уверен, стоит ли мне добавлять prepareForSegue или как его решить
import UIKit
import Firebase
class LoginViewController: UIViewController {
let nextViewController = HomeViewController()
@IBOutlet weak var loginLbl: UILabel!
@IBOutlet weak var usernameTxt: UITextField!
@IBOutlet weak var passTxt: UITextField!
var pass = true
@IBAction func userLoginBtn(_ sender: Any) {
let username = usernameTxt.text!
let password = passTxt.text!
if username.isEmpty || password.isEmpty {
var emptyFieldsError:UIAlertView = UIAlertView(title: "Please try again", message: "Please fill in all the fields we can get you logged in to your account.", delegate: self, cancelButtonTitle: "Try again")
emptyFieldsError.show()
}
Auth.auth().signIn(withEmail: username, password: password) { (user, error) in
if user != nil {
// self.performSegueWithIdentifier("Klikur", sender: self)
OperationQueue.main.addOperation {
[weak self] in
print("ERROR STARTS HERE")
print(error)
self?.loginLbl.text = "YEAAAAY DID IT"
self?.performSegue(withIdentifier: "testSeg", sender: self)
}
} else {
if let errorString = (error! as NSError).userInfo["error"] as? String {
// errorMessage = errorString
self.loginLbl.text = "error"
}
self.loginLbl.text = "Please try again"
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
Я хочу определить последовательность по коду и перейти на домашнюю страницу, только если данные для входа введены правильно. PS: Я использую Аутентификацию Firebase для этого, и код работает правильно, только та часть, которая вызывает сбой. Заранее спасибо.