0

この質問に対する答えは簡単に見つかると思っていましたが、実際にはそうではありませんでした。基本的には MVC のベスト プラクティスに関するものですが、Cocoa の MVC の実装に対するより具体的な回答が必要です。

Bindings を介して変更可能な配列からのデータを表示する MainView と、この配列に新しい項目を追加するオプションがあるとします。ここで、配列に追加されるデータはより複雑になる可能性があり、配列に追加する前、またはデータ クラスのオブジェクトを作成する前に検証が必要になる場合もあります。そのため、新しい MVC またはより具体的な VC ペアをプロジェクトに追加しました。これは、すべてのデータを入力できるビューとそれを保存するためのボタンです。保存ボタンをクリックすると、検証が開始され、検証が成功した場合、最終的に配列にデータが追加されます。

AddViewController から配列にアクセスするための最良のソリューションはどれか疑問に思っています。共有可変配列?AddViewController でプロパティを設定しますか?

MVC に慣れている人にとっては、答えは非常に簡単かもしれません。さらに、配列にアクセスできますが、どの方法が最善かを知りたいです。

4

1 に答える 1

1

委任の概念は、すべての問題に対する答えです!

データ検証が成功したら、データを MainView コントローラーに渡して配列に追加します:)

詳細: AddViewController にはプロトコルとデリゲート プロパティが必要です。

@protocol AddViewControllerDelegate <NSObject>

-(void)addViewController:(AddViewController*)addViewController didCompleteWith:(id)data;

@end

@interface AddViewController : SuperClass

@property (nonatomic,weak)id<AddViewControllerDelegate>delegate;
...

@end

メイン ビュー コントローラーはこのプロトコルを実装し、それ自身を AddViewController デリゲートとして設定する必要があります。

データの検証時に、AddViewController はデリゲートでプロトコル定義のメソッドを呼び出す必要があります。

-(void)dataValid:(id)data {
...
[self.delegate addViewController:self didCompleteWith:data]
...
}
于 2013-09-30T11:47:54.337 に答える