У меня есть табличное представление, в котором перечислены все штаты США. Когда пользователь щелкает штат, из вызова веб-службы создается список речных постов для этого штата. Список отображается в другом контроллере табличного представления. Я нахожусь в процессе интеграции индикатора активности, чтобы уведомить пользователя о сетевой активности.
У меня есть объект (GuageList), который содержит список датчиков в виде изменяемого массива. Именно этот объект вызывает веб-службу и заполняет массив. Затем массив используется в качестве источника данных в результирующем контроллере табличного представления. Моя первая попытка интегрировать индикатор активности заключалась в том, чтобы поместить инициализацию этого объекта в целевой контроллер табличного представления, который отображает датчики для состояния. Однако, когда я это делаю, я не получаю ожидаемых результатов. При нажатии на состояние возникает длительная пауза, затем отображается табличное представление, содержащее список датчиков, с кратковременным отображением индикатора активности в целевом контроллере.
Затем я попытался разместить инициализацию объекта GaugeList в начальном контроллере табличного представления (содержащем штаты США). Мои мысли состояли в том, чтобы инициализировать объект GaugeList там и передать его в переходе. Это дало идентичные результаты.
Исходный код перехода:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"sgShowStateRivers"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Loading Rivers\nPlease wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alert setOpaque:NO];
[alert show];
UIActivityIndicatorView *activityStatus = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(120, 230, 50, 50)];
activityStatus.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
[activityStatus startAnimating];
[alert addSubview:activityStatus];
RiversByStateTableViewController *riversVC = [segue destinationViewController];
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
NSArray *tempArray = (NSArray*)[groupedStates objectAtIndex:path.section];
NSString *key = [tempArray objectAtIndex:path.row];
NSString *stateID = [statesDict objectForKey:key];
[riversVC setStateIdentifier:stateID];
GaugeList *stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateID andType:nil];
[riversVC setStateGauges:stateGauges];
[activityStatus stopAnimating];
[alert dismissWithClickedButtonIndex:0 animated:YES];
}
}
В моем пункте назначения я просто использую объект stateGauges для заполнения таблицы. Я думал, что объект stateGauges будет заполнен до завершения перехода, но, видимо, я ошибаюсь.
Что я делаю неправильно?
Спасибо! В