Я новичок в Swift (и программировании в целом). У меня возникли трудности с Xcode с функцией входа. Я хочу, чтобы пользователь вошел в систему, если ошибки не были возвращены, и пользователь должен быть отправлен на другой контроллер. Я прочитал часть документации от Apple и performSegueWithIdentifier
(и, конечно, некоторые вопросы заданы здесь), но она по-прежнему не работает, когда я использую segue с push
или modal
, которым присваивается идентификатор. Либо приложение сбой, либо пользователь отправляется на мой UITabBarController
, даже если учетные данные были неверными.ViewController segue и login
Это мой LogInViewController.swift:
@IBAction func loginAction(sender: AnyObject)
{
if self.emailField.text == "" || self.passwordField.text == ""
{
let alertController = UIAlertController(title: "Oops!", message: "Please enter an email and password.", preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
alertController.addAction(defaultAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
else
{
FIRAuth.auth()?.signInWithEmail(self.emailField.text!, password: self.passwordField.text!) { (user, error) in
if error == nil
{
self.emailField.text = ""
self.passwordField.text = ""
}
else
{
let alertController = UIAlertController(title: "Oops!", message: error?.localizedDescription, preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
alertController.addAction(defaultAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
// User Logged in
self.performSegueWithIdentifier("LoggedIn", sender: self)
}
}
}
Я получаю ошибку в консоли:
2016-09-04 14: 55: 30.019 DrinkApp [37777: 1006336] ** * Завершение приложения из-за неперехваченного исключения «NSGenericException», причина: «Не удалось найти контроллер навигации для segue« LoggedIn ». Push segues может использоваться только тогда, когда управляющий источник управляется экземпляром UINavigationController. '
Спасибо, но я все еще не понимаю. Я добавил performSegueWithIdentifier: self.presentViewController (alertController, анимированное: правда, завершающий: ноль) } // Пользователь Помнить self.performSegueWithIdentifier ("LoggedIn", отправителе: Я) Но я получаю это в консоль: 2016-09-04 14:20:56.968 DrinkApp [35936: 985848] *** Завершение приложения из-за неотображенного исключения «NSGenericException», причина: «Не удалось найти контроллер навигации для segue« LoggedIn ». Push segues может использоваться только тогда, когда управляющий источник управляется экземпляром UINavigationController. ' – Joesoes