0

ポップ時にメインビューにデータを送り返したい

-(IBAction)addPartToBuild:(id)sender{
    [self.navigationController popToRootViewControllerAnimated:YES];
}

送信者:データを使用できますか? 試してみましたが、「No @interface」エラーが発生しました。

4

1 に答える 1

1

MVC (モデル ビュー コントローラー) の哲学を台無しにしようとしています。ビュー コントローラーは UI 処理を担当する必要があります。

データモデルとデータストレージを担当するデータコントローラーを構築する必要があります。次に、通知を追加したり、データ変更イベントをルートまたはその他のビュー コントローラーに委任したりできます。これは読みやすく、MVC のすべてのメリットを享受できます。

それは同じくらい簡単でなければなりません

[[MyDataManager sharedInstance] addPartToBuild:newPart];
[self.navigationController popToRootViewControllerAnimated:YES];

また、ルート ビュー コントローラーは、データ コントローラーから変更されたデータを取得するたびに、データ変更通知、委任されたメッセージ、または UI だけを完全にキャッチする必要があります。


質問を誤解している可能性があります。どのコントロールがアクションをトリガーしたかを知る必要がある場合、それid senderはそのコントロール参照です。たとえば、アクションを UIButton にリンクすると、送信者は UIButton 参照になります (それをチェックして、必要なもの[sender isKindOfClass:[UIButton calss]]を取得できます)複数のボタンに同じアクションを割り当て、ボタンタグをチェックして何をすべきかを決定できるように、UIButton のプロパティを使用します。詳細については、Mediator パターンをチェックしてください)。

于 2012-08-19T19:58:10.753 に答える