У меня есть настраиваемый контроллер данных, который я использую для своего приложения, и в нем есть некоторые методы делегирования, которые я настроил. Все они работают, но не тогда, когда они мне нужны. Когда я вызываю [dataController refreshData], у меня есть метод делегата refreshDidStart и refreshDidFinishWithoutError. Я выделяю контроллер данных, устанавливаю для делегата значение self и вызываю refreshData в applicationDidFinishLaunching, но методы делегата не обновляют представления таблиц в контроллерах представления, когда выполнение метода завершено. Но когда я настраиваю обновление UIBarButtonItem для вызова [dataController refreshData], вызывается метод делегата refreshDidFinish, который выполняет то, что должен. Я считаю, что это связано с контроллером разделения представления, который я использую. Ниже приведен код:
Делегат приложения:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
dataController = [[DataController alloc] init];
[dataController setDelegate:self];
[dataController refreshData];
}
MasterViewController:
- (void)viewDidLoad
{
[super viewDidLoad];
dataController = [[DataController alloc] init];
[dataController setDelegate:self];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"texture3.png"]];
}
- (void)refreshDataDidStart:(DataController *)view {
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.labelText = @"Loading";
}
- (void)refreshDataDidFinishWithoutError:(DataController *)view {
[callsTableView reloadData];
[MBProgressHUD hideHUDForView:self.view animated:YES];
}
- (void)refreshDataDidFailWithError:(DataController *)view withError:(NSError *)error {
[MBProgressHUD hideHUDForView:self.view animated:YES];
NSLog(@"%@", error.localizedDescription);
}