我有一个在视图控制器中使用的功能。最好放在哪里,这样我就不会在这些控制器上重复此操作?
-(void)addNewQuestion
{
AddNewQuestionViewController *anqvc = [[AddNewQuestionViewController alloc]initWithTopic:self.topic];
[anqvc setCompletionHandler:^(Question *newQuestion){
[self.questionTableView reloadData];
}];
[self.navigationController pushViewController:anqvc animated:YES];
[anqvc release];
}
最佳答案
您应该实现observer-pattern。
在应用程序中的某个位置,您拥有模型:您的问题和每个ViewController清单都需要列出所有问题,因此应在模型中遵守该列表。如果您的模型发生了变化:例如添加一个新问题,将通知所有观察员。
在obj-c中,您可以使用Key-Value-Observing。
因此,每个在表格视图中列出数据的VC都可以调用[self.tableView reloadData]
甚至更好:创建一个仅实现DataSource
的新类,并在所有tableView中使用相同的DataSource。