【问题标题】:Passing Data Between two ViewControllers in MVVM在 MVVM 中的两个 ViewController 之间传递数据
【发布时间】:2021-05-12 04:32:06
【问题描述】:

我最近开始探索 MVVM 并坚持在 2 个视图控制器之间传递数据。我在 ViewController1 的 viewModel1 中有一个项目数组,我想将该数组传递给 viewcontroller2。我可以通过从 viewModel1 获取整个数组来实现它,如下所示,但我不确定这是否是正确的方法。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   if segue.identifier == Constants.kShowDetailSegue {
        let destinationViewController = segue.destination as! ListViewController
        destinationViewController.products = viewModel1.getFavouriteProducts()
      //the getFavouriteProducts gets data from coredata.

    }
}

【问题讨论】:

  • 这是一种常用的数据传递模式,因此没有任何问题/坏处。它工作正常,对吧?你想传递一个数组,你的ListViewController 得到这个数组。
  • 感谢您的回复。我不认为我正在做的是正确遵循 MVVM。我不希望 viewcontroller2 中的数组暴露给 viewcontroller1

标签: ios swift mvvm


【解决方案1】:

我认为您的做法是正确的,但您也可以使用闭包。这是 iOS 中首选的通信方法。您将在必要时使用

处理内存泄漏
weak 

无主

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2016-03-24
    • 2017-01-22
    相关资源
    最近更新 更多