1

UITableViewCell のカスタム サブクラスを作成しました。そこで、ユーザーが UITextView でテキストを編集できるようにします。セルは、ルート ビューのサブビューであるポップアップ ビューのテーブルに属しています。ここで、テーブル セルで編集したテキストを、セル内の他のデータと共にルート ビューに渡す必要があります。これは、この編集されたデータを、ルート ビューのサブビューでもある Web ビューに送信する必要があるためです。

以下のアプローチを検討しました。1 つは、ポップアップ ビューをカスタム セル ビューのデリゲートにし、ルート ビューをポップアップ ビューのデリゲートにして、データをデリゲート メソッド呼び出しで渡す方法です。これにより、設計が複雑になりすぎる可能性があります。2 番目の方法は、Web ビューの作成時にシングルトン クラスに Web ビューへの参照を格納し、セルから直接更新することです。しかし、それでは、これらすべてのクラスが達成しようとしているカプセル化がまったく無意味になります。

取るべき最善のアプローチは何ですか?私が提案した2つ以外に方法はありますか?

4

1 に答える 1

3

を使用します。クラス リファレンスNSNotificationCenterを参照してください

通知を作成する

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:@"doSomething" object:nil];

通知を投稿する

NSString * testString = @"Testing NSNotificationCenter";
[[NSNotificationCenter defaultCenter] postNotificationName: @"doSomething" object: testString];

通知を処理する

- (void)doSomething:(NSNotification *)notification
{
    NSString * someString = [notification object];
    NSLog(@"String Passed from NSNotificationCenter: %@", someString);
}
于 2012-06-27T18:48:53.173 に答える