小编Nik*_*nov的帖子

在SwiftUI ViewBuilder块中切换语句的替代方法?

我一直在尝试使用SwiftUI复制我的应用程序。它有一个RootViewController,根据枚举值,它显示了一个不同的子视图控制器。与在SwiftUI中一样,我们使用视图代替视图控制器,我的代码如下所示:

struct RootView : View {
   @State var containedView: ContainedView = .home

   var body: some View {
      // custom header goes here
      switch containedView {
         case .home: HomeView()
         case .categories: CategoriesView()
         ...
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到警告:

包含控制流语句的闭包不能与function builder一起使用ViewBuilder

因此,是否有其他选择可以切换,以便我可以复制此行为?

swift swiftui

14
推荐指数
5
解决办法
3404
查看次数

(MVVM) 每个视图或每个模型的视图模型?

:)

在过去的几周中,我观看并阅读了大量 MVVM 材料,似乎每个人都以一种或另一种方式进行了重大差异,但没有详细说明。我们是为每个视图还是每个模型创建一个 ViewModel?

有一个问题,但我认为它没有得到彻底的回答。所以..

让我们以 Recipes 应用为例,其中我们有三个不同的视图:RecipesViewController、RecipeViewController 和 RecipeCell。我认为实现 MVVM 的正确方法是为每个视图创建一个 ViewModel,而不是创建一个 RecipeModel 并在它们之间共享它。

这个例子可能足够基本,我们可能更喜欢一个 ViewModel,但它不正确,是吗?如果两者都可以接受,有人可以解释差异、缺点和好处吗?如果我们有一个网络层,那么只有 ViewModel 应该与之通信,对吗?

谢谢你。

design-patterns mvvm ios

0
推荐指数
1
解决办法
547
查看次数

标签 统计

design-patterns ×1

ios ×1

mvvm ×1

swift ×1

swiftui ×1