将表格视图行标题传递给 viewcontroller swift
Pass tableview row title to viewcontroller swift
从 tableview 转换到 view controller 时一切正常。我遇到的唯一问题是当我从 tableview 转到 viewcontrller 时,我的变量没有被传递。它显示为空白。
当我在 tableview 控制器中打印到控制台时,我发现我的变量不是空白的,但是在 viewcontroller 中接收到它时它是空白的。我无法弄清楚为什么我的变量没有传递给我的 viewcontroller。感谢任何帮助或想法。
表视图控制器方法:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRow(at: indexPath)! as UITableViewCell
//valueToPass = currentCell.textLabel?.text
let myVC = storyboard?.instantiateViewController(withIdentifier: "selectedMeterView") as! SelectMeterDetailsViewController
myVC.stringPassed = (currentCell.textLabel?.text)!
print(myVC.stringPassed)
navigationController?.pushViewController(myVC, animated: true)
}
这是我的 viewcontroller 接收变量:
import UIKit
import Foundation
class SelectMeterDetailsViewController: UIViewController {
var stringPassed = ""
@IBOutlet weak var meterNameOuput: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
meterNameOuput.text = "THis is a test \(stringPassed)"
}
@IBAction func goBackToTableview(_ sender: UIBarButtonItem) {
performSegue(withIdentifier: "backToTableVIew", sender: self)
}
}
首先在 SelectMeterDetailsViewController
中这样声明 var
var stringPassed:String?
第二
@IBAction func goBackToTableview(_ sender: UIBarButtonItem) {
//// pop the view controller don't segue back
self.navigationController?.popViewController(animated: true)
}
从 tableview 转换到 view controller 时一切正常。我遇到的唯一问题是当我从 tableview 转到 viewcontrller 时,我的变量没有被传递。它显示为空白。
当我在 tableview 控制器中打印到控制台时,我发现我的变量不是空白的,但是在 viewcontroller 中接收到它时它是空白的。我无法弄清楚为什么我的变量没有传递给我的 viewcontroller。感谢任何帮助或想法。
表视图控制器方法:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRow(at: indexPath)! as UITableViewCell
//valueToPass = currentCell.textLabel?.text
let myVC = storyboard?.instantiateViewController(withIdentifier: "selectedMeterView") as! SelectMeterDetailsViewController
myVC.stringPassed = (currentCell.textLabel?.text)!
print(myVC.stringPassed)
navigationController?.pushViewController(myVC, animated: true)
}
这是我的 viewcontroller 接收变量:
import UIKit
import Foundation
class SelectMeterDetailsViewController: UIViewController {
var stringPassed = ""
@IBOutlet weak var meterNameOuput: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
meterNameOuput.text = "THis is a test \(stringPassed)"
}
@IBAction func goBackToTableview(_ sender: UIBarButtonItem) {
performSegue(withIdentifier: "backToTableVIew", sender: self)
}
}
首先在 SelectMeterDetailsViewController
中这样声明 var
var stringPassed:String?
第二
@IBAction func goBackToTableview(_ sender: UIBarButtonItem) {
//// pop the view controller don't segue back
self.navigationController?.popViewController(animated: true)
}