У меня есть segue для контроллера представления, который отвечает за аутентификацию пользователя. Когда вход в систему подписан, я хочу вернуться к контроллеру родительского представления. Следуя руководству this, я создал segue от контроллера представления просмотра до его выхода. Когда я пытаюсь назвать это кодом, я ничего не делаю.Не удается выполнить segue для выхода
Вот мой код:
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
class AuthVC: UIViewController, GIDSignInUIDelegate {
@IBAction func unwindAuth(sender: UIStoryboardSegue) {
print("'unwindAuth' called")
}
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().uiDelegate = self
FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
if FIRAuth.auth()?.currentUser != nil {
print(self.shouldPerformSegue(withIdentifier: "unwindSegue", sender: nil))
self.performSegue(withIdentifier: "unwindAuthSegue", sender: nil)
}
}
}
}
После нажатия на кнопку Войти, я true
в консоли от self.shouldPerformSegue
, но ничего (нет ошибок и ничего не происходит).
Я использую Xcode Version 8.3 beta (8W109m).
Я искал решение для этого в течение нескольких дней.
Отказ от ответственности: Я новичок в Xcode, но я программировал почти 10 лет. Тем не менее, у меня нет формального обучения.
Вы не читали очень внимательно:»..you указать фамилию размотки действия в контроллере представления вы хотите, чтобы segue расслабился ». Вы поместили его в контроллер просмотра, из которого вы отключаетесь. – Gruntcakes
Спасибо за ответ. Есть ли способ сделать это наоборот? Я могу прослушивать запись с первого контроллера, но чтобы знать, что это было из контроллера представления auth, мне нужно было бы установить какую-то переменную состояния. Это не похоже на лучшую практику. Кроме того, почему я не получил ошибку вместо просто ничего? – Fallenalien22
Похоже, вы хотите передать данные с 2-го контроллера вида на 1-й? Есть много прошлых вопросов о том, как это сделать, если вы посмотрите вокруг. – Gruntcakes