我的问题是,是否有可能将数据从选定的表视图单元传递到其他视图控制器
第一个控制器中的表视图使用原型单元格
第二个视图控制器还有另外3个标签,如下所示
[我尝试了此处描述的内容:passing data,但是它没有用,并且给了我错误“ UIStoryboardPopoverPresentationSegueTemplate的占位符”,通过阅读this old thread top answer我可以理解这是因为我正在使用原型单元及其动态]]
我想要的是,每当用户选择一行时,第二个视图控制器就会填充此关系
字符串1→字符串4
字符串2→字符串5
字符串3→字符串6
到目前为止,我已经尝试了一些类似的事情:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) let vc = storyboard?.instantiateViewController(identifier: "secondVC") as! CalculadoraViewController present(vc, animated: true) let string4 = string4array[indexPath[1]] performSegue(withIdentifier: "secVC", sender: string4) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let vc = segue.destination as? CalculadoraViewController { vc.string4.text = (sender as! String) } }
弹出视图控制器代码:
class CalculadoraViewController: UIViewController {
@IBOutlet weak var string4: UILabel!
@IBOutlet weak var string5: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
}
我的问题是,是否有可能将数据从选定的表视图单元传递到其他视图控制器。第一个控制器中的表视图使用原型单元。第二个视图控制器...
View-Controller
,则无需执行segue:didSelectRow
中传递数据的方式> func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let vc = storyboard?.instantiateViewController(identifier: "secondVC") as! CalculadoraViewController
// here you use VC to pass data
if let dataToPassString4 = string4array[indexPath.row],
let dataToPassString5 = string5array[indexPath.row] {
vc.string4.text = dataToPassString4 // passing string4 text
vc.string5.text = dataToPassString5 // passing string5 text
}
present(vc, animated: true)
}