![](/img/trans.png)
[英]Passing string through unwind segue and/or dismissViewController SWIFT
[英]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
其次,確定你的名字! Label
是string
的壞名字。 如果我在看這段代碼,會立即認為waveName
是一個字符串, waveLabel
是標簽,但這與您在此使用的相反。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.