Я пытаюсь передать два текстовых поля (passName и passPhone) после того, как пользователь вводит их оба в ViewController как textField.text, в мой 3-й контроллер представления, так как он мне нужен для ссылки на дочернее имя базы данных firebase, но каждый раз, когда я запустить это дает мне нулевое возвращаемое значение? Я не понимаю, почему значение не проходит
executeSegue должен передавать textfield.text следующему контроллеру представления, потому что при переопределении функции func я установил его так:
Код ошибки: (ищите код для определения местоположения)
Поток 1: неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения
// ViewController
@IBOutlet weak var nameField: UITextField!
@IBOutlet weak var numberField: UITextField!
@IBAction func linkTapped(_ sender: Any) {
if (nameField.text != nil && numberField.text != nil) {
if error != nil {
//code
} else {
self.performSegue(withIdentifier: "code", sender: self)
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = verificationCodeViewController()
vc.passName = self.nameField.text
vc.passPhone = self.numberField.text
nameField.endEditing(true)
numberField.endEditing(true)
}
// verifyCodeViewController
var passName: String!
var passPhone: String!
@IBAction func Login(_ sender: Any) {
if (code.text! != "") {
let defaults = UserDefaults.standard
let credential: PhoneAuthCredential = PhoneAuthProvider.provider().credential(withVerificationID: defaults.string(forKey: "authVID")!, verificationCode: code.text!)
Auth.auth().signIn(with: credential) { (user, error) in
if error != nil {
print("error: \(String(describing: error?.localizedDescription))")
} else {
print("Phone Number: \(String(describing: user?.user.phoneNumber))")
let userInfo = user?.user.providerData[0]
print("Provider ID: \(String(describing: userInfo?.providerID))")
self.performSegue(withIdentifier: "logged", sender: Any?.self)
}
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = RankedClubScreen()
vc.passName = self.passName
vc.passPhone = self.passPhone
}
// RankedClubScreen - ViewController
var passName: String!
var passPhone: String!
@IBAction func signOutFunction(_ sender: Any) {
do {
try Auth.auth().signOut()
let ref = Database.database().reference().child("Online Users")
print(self.passName + self.passPhone) // Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
ref.child(self.passName + self.passPhone).removeValue()
self.view.window!.rootViewController?.dismiss(animated: true, completion: nil)
} catch let error {
print("not signed in...", error)
}
}