提问者:小点点

在不同的viewcontrollers之间传递数据


我想把我的数据传递给其他的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上的标签为空。


共2个答案

匿名用户

你只需要点击故事板中的segue和添加segue标识符名称从侧板,我有附上的图片供参考

匿名用户

有许多方法可以在ViewControllers之间传递数据。请参阅以下链接

https://stackoverflow.com/A/31934786/11662833

https://learnappmaking.com/pass-data-between-view-controllers-swift-how-to/