Swift: 使用 present 时无法在视图控制器之间传递数据
Swift: Unable to communicate data between view controllers when using present
我已经以编程方式实现了这些。
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
从 TableViewController
设置为 voirToutMoviesItemsArray
。
问题是VoirToutViewController.voirToutMoviesItemsArray
总是空的。
知道我做错了什么吗?
它是零,因为你在初始化它的值之前呈现 vc。修复:
放置此行
vc.voirToutMoviesItemsArray=self.moviesItems
在此之前
self.viewController?.present(vc, animated: false, completion: nil)
我已经以编程方式实现了这些。
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
从 TableViewController
设置为 voirToutMoviesItemsArray
。
问题是VoirToutViewController.voirToutMoviesItemsArray
总是空的。
知道我做错了什么吗?
它是零,因为你在初始化它的值之前呈现 vc。修复:
放置此行
vc.voirToutMoviesItemsArray=self.moviesItems
在此之前
self.viewController?.present(vc, animated: false, completion: nil)