我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个?
第一个viewcontroller的代码
import UIKit
import Firebase
class OdayaKatilVC: UIViewController {
@IBOutlet weak var OdaAdiTextField: UITextField!
@IBOutlet weak var OdaSifresiTextField: UITextField!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { AKTARMAK İÇİN İF DÖNGÜSÜNE GİRMİYOR 26 MART CUMA
print("gönderme işlemi başarılı olacak")
if segue.identifier == "segue" {
print("gönderme işlemi başarılı olacak2")
let destinationController = segue.destination as! OdaBilgileriVC
destinationController.odaAdiF = OdaAdiTextField.text!
destinationController.odaSifreF = OdaSifresiTextField.text!
print("gönderme işlemi başarılı")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}`
@IBAction func OdayaGecisYapButton(_ sender: Any) {
let email = OdaAdiTextField.text ?? ""
let pass = OdaSifresiTextField.text ?? ""
if email.isEmpty {
Common.showAlert(title: "Bir şey unuttun!", message: "Oda adını yazmayı unutmayın.", vc: self)
return
}
if pass.isEmpty {
Common.showAlert(title: "Bir şey unuttun!", message: "Oda şifresini yazmayı unutmayın.", vc: self)
return
}
Auth.auth().signIn(withEmail: String("\(email)@question.com"), password: "\(pass)123456") { (result, error) in
if error != nil {
_ = self.navigationController?.popViewController(animated: true)
print(error?.localizedDescription as Any)
let alert = UIAlertController(title: "Bir şeyler yanlış!", message: "Oda adı veya şifre hatalı.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Tamam", style: .default, handler: nil))
self.present(alert, animated: true)
return
}else{
print("Odaya başarılı şekilde giriş yapıldı.")
}
}
}
第二个viewcontroller的代码
import UIKit
import Firebase
class OdaBilgileriVC: UIViewController {
@IBOutlet weak var odaAdilbl: UILabel!
@IBOutlet weak var odaSifresilbl: UILabel!
var odaAdiF = String()
var odaSifreF = String()
override func viewDidLoad() {
super.viewDidLoad()
odaAdilbl.text = odaAdiF
odaSifresilbl.text = odaSifreF
// Do any additional setup after loading the view.
}
当我运行代码时,我看不到数据。第二个viewcontrollers上的标签为空。
你只需要点击故事板中的segue和添加segue标识符名称从侧板,我有附上的图片供参考
有许多方法可以在ViewControllers之间传递数据。请参阅以下链接
https://stackoverflow.com/A/31934786/11662833
https://learnappmaking.com/pass-data-between-view-controllers-swift-how-to/