インスタグラムのクローンを作っています。
(ストーリーボード上は下記2つの画面があります)
①Email,PasswordのフォームとLog in,Sign Upのボタンの画面。
②Sign Upボタンから遷移した先は、
Full Name,E mail,Passwordなどのテキストフィールドと
UIImage View,Select Picture,Nextのボタンがある画面。
Sign Upをクリックすると、遷移されずクラッシュし、Thread 1: signal SIGABRTと表示されます。
(確認した点)
・triggered seguesの中では、使用しているラベルのみ結ばれている
・メインストーリーボード上でSignupViewController.swiftを右クリックした中に、
イエローフラッグは無し
(試した方法)
・SignupViewController.swift上のIBOutletとIBActionから始まるコードを
全て消して書き直し、再度ビルドしてもクラッシュしました。
お分かりになる方、どうぞご教授お願います。
// // SignupViewController.swift // instagram_001 // import UIKit import Firebase class SignupViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet weak var nameField: UITextField! @IBOutlet weak var emailField: UITextField! @IBOutlet weak var password: UITextField! @IBOutlet weak var comPwField: UITextField! @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var nextBtn: UIButton! let picker = UIImagePickerController() var userStorage: StorageReference! var ref: DatabaseReference! override func viewDidLoad() { super.viewDidLoad() picker.delegate = self let storage = Storage.storage().reference(forURL: "gs://instagram-f049d.appspot.com") ref = FirebaseDatabase.Database().reference() userStorage = storage.child("users") } @IBAction func selectimagePressed(_ sender: Any) { picker.allowsEditing = true picker.sourceType = .photoLibrary present(picker, animated: true, completion: nil) } func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { if let image = info[UIImagePickerControllerEditedImage] as? UIImage { self.imageView.image = image nextBtn.isHidden = false } self.dismiss(animated: true, completion: nil) } @IBAction func nextPressed(_ sender: Any) { guard nameField.text != "", emailField.text != "", password.text != "", comPwField.text != "" else { return} if password.text == comPwField.text { Auth.auth().createUser(withEmail: emailField.text!, password: password.text!, completion: { (user,error) in if let error = error { print(error.localizedDescription) } if let user = user { let changeRequest = Auth.auth().currentUser!.createProfileChangeRequest() changeRequest.displayName = self.nameField.text! changeRequest.commitChanges(completion: nil) let imageRef = self.userStorage.child("(user.uid).jpg") let data = UIImageJPEGRepresentation(self.imageView.image!, 0.5) let uploadTask = imageRef.putData(data!, metadata: nil, completion: { (metadata, err) in if err != nil { print(err!.localizedDescription) } imageRef.downloadURL(completion: { (url, er) in if er != nil { print(er!.localizedDescription) } if let url = url { let userInfo: [String : Any] = ["uid" : user.uid, "full name" : self.nameField.text!, "urlToImage" : url.absoluteString] self.ref.child("users").child(user.uid).setValue(userInfo) let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "userVC") self.present(vc, animated: true, completion: nil) } } ) }) uploadTask.resume() } else { print("password does not match") } } )}} }
回答1件
あなたの回答
tips
プレビュー