iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Mobile Development

麻瓜學習 iOS 開發系列 第 27

Day27:用 EnvironmentObject 傳遞數據

前言

今天來創建具體的 Featured View。

實作

  • 創建一個 FeaturedView file

    在 TabView 裡呼叫 RecipeFeaturedView 實例:
  • 在 RecipeFeaturedView 傳遞 Recipe 數據
    在 RecipeListView 裡是通過呼叫 RecipeModel 的實例傳遞數據的:
@ObservedObject var model = RecipeModel()

如果在 RecipeFeaturedView 中同樣創建 RecipeModel 的實例也可以達到目的,
只是這樣就需要管理兩組數據了,
並不方便。
在這個 app 的 Views 裡,
可以看到很明顯的層級結構,
最上面是 RecipeTabView -> RecipeFeaturedView、RecipeListView->RecipeListView,
之前是在 RecipeListView 中引用數據的,
其實可以把引用數據放在最高層級 RecipeTabView 裡,
其他層級都可以引用這一組數據了。
不過這樣做仍然需要不停的引用這一組數據,
現在可以用 the RecipeTabView modifier 達到這個目的。

  1. 在 RecipeTabView 中創建一個 RecipeModel 的實例作為 the EnvironmentObject
    在 RecipeListView 中刪除引用數據的實例:
  2. 在 RecipeTabView 中的 TabView 後添加 environmentObject 並添加 RecipeModel 的實例:
  3. 在 RecipeListView 中宣告一個屬性
@EnvironmentObject var model:RecipeModel

這樣就可以引用數據了。


上一篇
Day26:TabView
下一篇
Day28:Update the Data and the Featured View
系列文
麻瓜學習 iOS 開發30

尚未有邦友留言

立即登入留言