jjzjj

viewmodels

全部标签

ios - 如何将正确的 viewModel 注入(inject)单个 viewController

我将Swinject用于我的DI解决方案,并使用SwinjectStoryboard扩展对其进行扩展。我正在努力将正确的viewModel动态注入(inject)特定的viewContoller。具体场景如下:MyViewController有一个名为varviewModel:ViewModeling的属性。有2个不同的View模型符合ViewModeling协议(protocol),我们称它们为:firstViewModel和secondViewModel。我的Storyboard只包含一个Controller及其MyViewController。问题动态注入(inject)正确的v

swift - Swift Bond 中 model 和 viewModel 的绑定(bind)

我正在使用SwiftBond将View与viewModel进行双向绑定(bind)。这是通过bidirectionalBind实现的。问题是:将模型与viewModel绑定(bind)的常见做法是什么,更具体地说,模型如何知道viewModel中所做的更改。在ReactiveCocoa中有RACChannel可以做到这一点,因此您可以在不更改模型属性类型的情况下绑定(bind)viewModel和模型。主要目标是保持模型非常简单,仅使用String、Int、Date等基本类型,并将Observable和Property类型移至viewModel。插图:importBondimportR

swift - 将 swift 属性的值绑定(bind)到 viewModel 的属性

我知道,这个问题可能很愚蠢,很抱歉。情况:具有属性的UIViewControllervarselectedItem:(item:ItemEntity,index:Int)?structItemEntity{letid:Stringletname:String}和带有属性的viewModelvaritemVM=MutableProperty("")问题:如果我想绑定(bind)textField.text值更改我只使用viewModel.name但我如何绑定(bind)id的更改item的属性(property)查看模特的itemVM?(我试过类似viewModel.itemVC)

ios - 使用 Swinject 有条件地将 ViewModel 注入(inject) ViewController

我正在使用Swinject来注入(inject)依赖项,到目前为止效果很好。但现在我有一个场景,其中我有一个ViewController,它依赖于它的ViewModel。ViewModel符合ViewModeling协议(protocol)并且可以是两种类型之一(两者都符合相同的协议(protocol),但具有截然不同的行为)。我想弄清楚如何注入(inject)正确的ViewModel(必须在运行时做出决定)?我注意到我可以使用Container通过name注册每个ViewModel然后使用name来区分应该注入(inject)哪个ViewModel,起初这似乎是一个很好的解决方案-直

ios - 在 Swift 中将数据传递给 ViewModel

我是MVVM模式的新手,所以请不要评判我。我想要做的是,如果可能的话,我想将数据与segue一起传递给ViewModel并基于它填充数据。为什么我要这样做,因为假设我有3个ViewController(A、B、C)。在ViewController上,我从Realm数据库获取数据,然后使用segues传递这些数据,我真的不想更改该结构。但是,如果您有更好的建议,也请告诉我。这是我的代码://MARK:-ViewModelItemTypesenumEventViewModelItemType{casedescriptioncasematerials}//MARK:-ViewModelcla

ios - MVVM:使用闭包、无主或弱 self 将 View 与 ViewModel 绑定(bind)?

我正在实现一个简单的主从应用程序,其中MasterviewController管理一个TableView,该TableView显示调用REST服务的结果。DetailviewController管理一个View,我在其中显示有关在Master中选择的项目的更多信息。常见场景。我正在尝试应用MVVM模式。在MasterviewController中,我以这种方式创建和初始化它的viewModel:lazyprivatevarviewModel:ListViewModel={returnListViewModel()}()overridefuncviewDidLoad(){super.vi

ios - ViewModel 和 Controller 之间通信的最佳方式

我是开发新手,最近在练习MVVM设计模式。为了在ViewModel和Controller之间进行通信,我使用了Closure。我知道我也可以使用Delegate。但是有没有什么约定或理由我应该遵循什么样的特定方式进行交流。我有点困惑。任何帮助将不胜感激。 最佳答案 我也在寻找这个答案,我找到了这个,将闭包从UI层(UIL)传递到业务逻辑层(BLL)会破坏关注点分离(SOC)。您正在准备的数据驻留在BLL中,因此基本上您会说“嘿BLL为我执行此UIL逻辑”。那是一个SOC。(在这里找到更多https://en.wikipedia.or

java - MVVM 中的 Activity/Fragment 和 ViewModel 应该做什么

我们公司一直在使用MVP模式开发Android应用程序。使用MVP,我们将所有业务逻辑放在Presenter和Activity/Fragment中,然后在接收到来自Presenter的事件回调时只负责View更新。现在,我们决定尝试使用Android数据绑定(bind)的MVVM。似乎使用MVVM,我们可以将所有业务逻辑放在ViewModel中(就像MVP中的Presenter),并将数据模型的任何更改通知View,所有这些都在一个对象中。但是,这在我们脑海中提出了一个问题,我们应该让Activity/Fragment处理什么?由于我们采用了MVP模式来避免fat-activity/f

ios - 使用 ReactiveCocoa 的 iOS 应用程序的 ViewModel 模式

我正在努力将RAC集成到我的项目中,目标是创建一个ViewModel层,该层将允许从网络轻松缓存/预取(以及MVVM的所有其他好处)。我还不是特别熟悉MVVM或FRP,我正在尝试为iOS开发开发一个不错的、可重用的模式。我对此有几个问题。首先,这就是我将ViewModel添加到我的一个View的方式,只是为了尝试一下。(我想在这里稍后引用)。在ViewControllerviewDidLoad:@weakify(self)//SetupsignalsRAC(self.navigationItem.title)=self.viewModel.nameSignal;RAC(self.spe

mvvm - 提供者与 ViewModel

进一步了解Provider和ChangeNotifier架构,我发现它与旧的MVVM架构非常相似,其中Widget是通过ViewModel(即ChangeNotifier)查看并获取更改通知,由Consumer和Provider链接.那为什么不叫MVVMforFlutter呢?这两种架构之间有什么实际区别吗? 最佳答案 provider绝不是一种架构。这是一种成分。在使用Provider时绝对没有任何强制要求您使用ChangeNotifier。您可以将它与其他东西结合使用,包括Mobx、BLoC、Redux......