swift 从一个风险投资公司到另一个风险投资公司的快速转换

omtl5h9j  于 2023-02-03  发布在  Swift
关注(0)|答案(1)|浏览(70)

ViewController有一个标签和一个用于转到secondVC的按钮。secondVC有一个文本字段、标签和按钮,用于在标签上的文本字段中写入用户输入的文本。当用户按下导航栏的后退按钮时,我希望将secondVC的标签文本转换为ViewController的标签文本。我该如何执行此操作?
ViewController的代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var nameLabel: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func goVC2(_ sender: Any) {
        performSegue(withIdentifier: "toVC2", sender: nil)
    }
  
    
}

secondVC的代码:

import UIKit

class secondVC: UIViewController {

    @IBOutlet weak var nameField: UITextField!
    @IBOutlet weak var resultLabel: UILabel!
   
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    

    @IBAction func saveClicked(_ sender: Any) {
        resultLabel.text = nameField.text
    }
    
}

我试着在ViewController中准备segue,但它是错误的。我在谷歌上搜索这个,但我找不到解决方案。

qyswt5oh

qyswt5oh1#

使用协议从第二个VC传递数据到第一个VC。您需要创建自己的委托方法,并使用传递数据调用dismiss,检查以下代码:----
视图控制器代码:

import UIKit

class ViewController: UIViewController, Delegate {

    @IBOutlet weak var nameLabel: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func save(str : String) {
        self.nameLabel.text = str
    }

    @IBAction func goVC2(_ sender: Any) {
       if let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "secondVC") as? secondVC {
                               
           vc.delegate = self
           self.present(vc, animated: true, completion: nil)
         }
    }
  
    
}

第二个VC代码:

import UIKit

protocol Delegate : AnyObject {
    func save(str : String)
}

class secondVC: UIViewController {

    @IBOutlet weak var nameField: UITextField!
    @IBOutlet weak var resultLabel: UILabel!
    weak var delegate : Delegate?
   
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    

    @IBAction func saveClicked(_ sender: Any) {

       if let del = self.delegate {
                
            let txt = nameField.text
            del.save(str: txt)
            self.dismiss(animated: true, completion: nil)
        }
        
    }
    
}

相关问题