在视图控制器之间传递数据会导致视图在Swift 3

时间:2018-02-20 01:41:29

标签: ios swift uitableview

我想在一个视图中基于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的新手,如果我犯了错误,请告诉我。

0 个答案:

没有答案