我想在一个视图中基于UITableView
单元格选择传递变量中的数据,然后将其传输到第二个视图(将在其中使用)。
数据当前正在成功传递,但它会导致第二个视图加载两次(它会快速闪烁然后重新出现)。我无法调试为什么会发生这种情况。
此外,如果我注释掉传递变量的代码,问题就会停止,所以我确信我做错了。
在Table View Controller 1中,我使用:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "passepisode", sender: indexPath)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let indexPath = self.tableView.indexPathForSelectedRow {
let controller = segue.destination as! EpisodeTableViewController
controller.showNameVariable = TableData[indexPath.row]
}
}
在EpisodeTableViewController.swift
中,我记录showNameVariable
的空值,该值将由第一个视图变量更新:
class EpisodeTableViewController: UITableViewController {
var TableData:Array< String > = Array < String >()
var TableDataV : [episode] = [episode]()
var showNameVariable = ""
override func viewDidLoad() {
super.viewDidLoad()
print(showNameVariable)}
这当前记录了前一个视图的单元格选择的文本,这是理想的。
在它执行此操作之前,它会闪烁第二个视图控制器的表,然后无意地重新加载。我是Swift的新手,如果我犯了错误,请告诉我。