XCode 12.4 日本語化計画:Swift Tutorials
ユーザー入力の処理
セクション 105
ModelData オブジェクトを作成したので、ビューを更新して、アプリのデータ保管場所として採用する必要があります。
ステップ 1
LandmarkList.swift で、@EnvironmentObject プロパティ宣言をビューに追加し、environmentObject(_:) 修飾子をプレビューに追加します。
environmentObject(_:) 修飾子が親に適用されている限り、modelData プロパティはその値を自動的に取得します。
    LandmarkList.swift
ステップ 2
ランドマークをフィルタリングするときは、modelData.landmarks をデータとして使用しましょう。
    LandmarkList.swift
ステップ 3
LandmarkDetail ビューを更新して、環境 (environment) 内の ModelData オブジェクトを操作します。
    LandmarkDetail.swift
ステップ 4
LandmarkRow プレビューを更新して、 ModelData オブジェクトで機能するようにします。
    LandmarkRow.swift
ステップ 5
ContentView プレビューを更新して、モデルオブジェクトを環境 (environment) に追加します。これにより、オブジェクトをすべてのサブビューで使用できるようになります。
サブビューに環境 (environment) 内のモデルオブジェクトが必要な場合、プレビューは失敗しますが、プレビューをしているビューには environmentObject(_:) 修飾子がありません。
    ContentView.swift
次に、アプリインスタンスを更新して、シミュレータまたはデバイス上でアプリを実行するときにモデルオブジェクトを環境 (environment) に配置します。
ステップ 6
LandmarksApp を更新してモデルインスタンスを作成し、environmentObject(_:) 修飾子を使用して ContentView に提供します。
@StateObject 属性を使用して、アプリの寿命中に 1 回だけ与えられたプロパティのモデルオブジェクトを初期化します。これは、ここに示すように、アプリインスタンスで属性を使用する場合、およびビューで使用する場合に当てはまります。
    LandmarksApp.swift
ステップ 7
LandmarkList.swift に戻り、ライブプレビューをオンにして、すべてが正しく機能していることを確認して下さい。
セクション 1 | セクション 2 | セクション 3 |
セクション 4 | セクション 5 | セクション 6 |
セクション 101 | セクション 102 | セクション 103 |
セクション 104 | セクション 105 | セクション 106 |