1

我创建了 UITableViewCell 的自定义子类。在那里,我允许用户在 UITextView 中编辑一些文本。单元格属于弹出视图中的表,该表是根视图的子视图。现在,我需要将表格单元格中编辑的文本以及单元格中的其他数据传递给根视图。这是因为,这个编辑过的数据必须被发送到一个 web 视图,它也是根视图的一个子视图。

我考虑了以下方法。一种是将弹出视图作为自定义单元格视图的委托,将根视图作为弹出视图的委托,并通过委托方法调用传递数据。这可能会使设计过于复杂。第二种方法是在创建时将对 webview 的引用存储在单例类中,并直接从单元格中更新它。但这会使所有这些类试图实现的封装完全没有意义。

最好的方法是什么?除了我建议的两种方法之外,还有其他方法吗?

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 回答