簡體   English   中英

字符串不通過segue?

[英]String not passing through segue?

我正在嘗試構建一個可以點擊的單元格,存儲單元格標簽的當前文本,並將該標簽發送到其他視圖控制器。 我到處都看了,不知道為什么沒有過去

帶有表視圖的視圖控制器

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "openWave" {
        if let destVC = segue.destination as? GoToWaveViewController {
            destVC.waveLabel = sender as! String
            print("sdf: \(sender)")
        }
    }
} ...

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = self.tableView.cellForRow(at: indexPath) as! MyWavesTableViewCell
    let text = cell.waveLabel.text!
    let label = self.groupNames[indexPath.row]
    print(label)
    performSegue(withIdentifier: "openWave", sender: label)
    //self.tableView.deselectRow(at: indexPath, animated: true)}

第二視圖控制器

class GoToWaveViewController: UIViewController {

@IBOutlet weak var waveName: UILabel!
var waveLabel: String!

override func viewDidLoad() {
    super.viewDidLoad()

}

override func viewWillAppear(_ animated: Bool) {
    setProperties()
}

func setProperties() {
    self.waveLabel = self.waveName.text!
    print("asdf: \(waveLabel)")
    print("asdfa: \(self.waveLabel)")
}

我看這是您可能需要的邏輯錯誤

self.waveName.text =  self.waveLabel

代替

self.waveLabel = self.waveName.text!

這會覆蓋發送的值,所以這

print("asdf: \(waveLabel)")
print("asdfa: \(self.waveLabel)")

將打印空值

好吧,當您的視圖出現時,您將調用setProperties ,它將 self.waveLabel中的文本覆蓋 self.waveName 這條線

self.waveLabel = self.waveName.text!

應該替換為

self.waveName.text = self.waveLabel

其次,確定你的名字! Labelstring的壞名字。 如果我在看這段代碼,會立即認為waveName是一個字符串, waveLabel是標簽,但這與您在此使用的相反。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM