ios - 在 MVVM 中的 viewController 之间传递数据
问题描述
我无法从我collectionViewController
的 to传递数据detailViewController
。
我现在正在努力学习MVVM
,这对我来说有点困惑。这MVC
很简单,但MVVM
我遇到了问题。
我的MainViewModel
:
struct CatViewModel {
let catImage: String
// Dependency Injection
init(catImage: CatModel) {
self.catImage = catImage.url
}
func detailViewModel(for indexPath: IndexPath) -> DetailsViewModel
{
return DetailsViewModel(catImage: catImage)
}
}
我的detailViewModel
:
struct DetailsViewModel {
let catImage: String
}
我的collectionViewCell
班级:
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageViewCell: CustomImageView!
var catViewModel: CatViewModel! {
didSet {
setUpCellImage()
}
}
func setUpCellImage() {
if let cellImageUrl = catViewModel?.catImage {
imageViewCell.loadImageUsingUrlString(urlString: cellImageUrl)
}
}
那么我现在应该如何传递我的数据detailViewController
?这MVC
很简单,但找不到正确的答案/如何在MVVM
.
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let mainStoryboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let destVC = mainStoryboard.instantiateViewController(withIdentifier: "DetailViewController") as! DetailViewController
self.navigationController?.pushViewController(destVC, animated: true)
}
我的detilViewController
班级:
class DetailViewController: UIViewController {
@IBOutlet weak var largeImageView: UIImageView!
var detailViewModel = [DetailsViewModel]()
var detailImage = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
self.largeImageView.image = detailImage
}
}
解决方案
推荐阅读
- python - 如何提取数据框列中所有数字的前 2 位数字?
- reactjs - 重用通用组件函数
- javascript - 如何根据javascript或CSS中的内容使禁用的输入框变大
- r - 当您对每种治疗有不同的 n 时使用 tapply
- python - pandas:连接字符串行直到特定字符
- javascript - 加载公共网站并执行脚本
- java - 当我在另一个应用程序意图上调用 startIntent 时引发 SecurityException
- java - 房间在第二次插入手机磁盘上的数据库后停止插入
- c++ - 负载可以在获取操作下方滑动/存储可以在 C++ 中的发布上方滑动吗?
- php - 如何输出自定义的while循环php