【发布时间】:2021-03-12 07:35:35
【问题描述】:
我已经以编程方式实现了这些。
TableViewCell:
class TableViewCell: UITableViewCell{
var moviesItems: [Document] = []
@objc func didPressVoirToutButton() {
print("Voir tout button was pressed.")
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc: VoirToutViewController = storyboard.instantiateViewController(withIdentifier: "VoirToutViewController") as! VoirToutViewController
self.viewController?.present(vc, animated: false, completion: nil)
print("moviesItemsArray being communicated to moviesItems",moviesItems)
// moviesItems is not empty
vc.voirToutMoviesItemsArray=self.moviesItems
}
}
VoirToutViewController:
class VoirToutViewController: UIViewController {
var voirToutMoviesItemsArray : [Document]?
}
我正在尝试通过将moviesItems 设置为voirToutMoviesItemsArray 来将TableViewController 与VoirToutViewController 通信。
问题是VoirToutViewController.voirToutMoviesItemsArray 始终为空。
知道我做错了什么吗?
【问题讨论】:
-
你确定
moviesItems本身不是空的吗?self.viewController是什么?你为什么不直接做self.present(...)? -
您没有显示所有相关的代码行。我们怎么知道 VoirToutViewController 没有收到 voirToutMoviesItemsArray?
-
@Sweeper 是的,moviesItems 不为空,因为它已正确记录。 TableViewController 实际上是我的代码中的 tableViewCell 这就是我使用 self.viewController 的原因? .我会解决的
-
@ElTomato 因为我将它登录到 ViewDidLoad 并且它是空的
-
在执行
self.viewController?.present(vc, animated: false, completion: nil)之前执行此vc.voirToutMoviesItemsArray=self.moviesItems
标签: ios swift uiviewcontroller viewcontroller tvos