説明
私のアプリは基本的に、建物を表すポリゴンのオーバーレイと注釈を組み合わせたマップビューを使用します。そのため、アノテーションがタップされたときにポップアップの詳細を処理する Annotation というカスタム クラスをインポートします。つまり、建物の名前と住所を保存します。この時点で、吹き出し (青色の開示ボタン) は空の DetailViewController オブジェクトを読み込みます (通過するデータが実際には存在しないため)。
すぐに、検索可能なテーブルの形で新しい機能を追加しました。このテーブルは、Building クラスのカスタム オブジェクト (Annotation と同様のプロパティに加えて、画像などの詳細を含む) をロードし、前述の DetailViewController クラスに建物の詳細をロードします。
要約すると、MapVC には複数の注釈が含まれており、関連する開示ボタンをタップすると DetailVC が開きます。SearchVC は MapVC のボタンによってアクセスされ、次のように関連データを含む DetailVC をロードする Building オブジェクトのテーブルを持っています。
次のステップ
そこで、吹き出しの青い開示ボタンに機能を実装して、ユーザーがタップすると建物の詳細が読み込まれるようにします。現時点では、注釈の詳細のみです。追加のプロパティを注釈に追加して完成させることもできますが、MKAnnotation の性質を持つ Building という 1 つのカスタム クラスだけを使用する方がはるかに優れていると思います。次に、この Building クラスが注釈と searchVC のテーブル用にロードされます。
質問
最後に、これを回避する最善の方法は何ですか? ダイアグラム内のどの VC とも関係なく、すべてのデータを保存したいと考えています。別の Datacontroller クラスを使用する Apple のチュートリアル (BirdSighting のもの) に従い、それを他のクラスにロードしました。これは最善のアプローチですか?