Индикатор активности не запускается Анимация, когда контроллер представления перемещается к другому контроллеру представления - PullRequest
2 голосов
/ 04 мая 2011

Я в настоящее время запускаю индикатор активности, прежде чем нажимать другой контроллер представления, но он не запускает анимацию индикатора активности.

[activityindicator startanimating];

[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];

[activityindicator stopanimating];

Ответы [ 3 ]

10 голосов
/ 04 мая 2011


Создайте NSThread как вызов селектора следующим образом:

[NSThread detachNewThreadSelector:@selector(threadStartAnimating:) toTarget:self withObject:nil];  
// Some code  
[spinner stopAnimating];  
[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];  

ThreadStartAnimating:

-(void)threadStartAnimating:(id)data  
{  
[spinner startAnimating];  
}  
1 голос
/ 04 мая 2011

Попробуйте этот код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  

[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;    

[self performSelector:@selector(navigatetodeals) withObject:nil afterDelay:.5];

}
-(void)navigatetodeals
{

    yourViewController *d = [[yourViewController alloc]initWithNibName:@"yourView" bundle:nil];

[self.navigationController pushViewController:yourViewController animated:YES];


}
0 голосов
/ 04 мая 2011

Вам нужно использовать executeSelectorInBackground или что-то еще.Поскольку вы используете вызовы в 1 методе, пользовательский интерфейс не получает возможности его обновить, поскольку вы не видите индикатор активности.

Итак, для вашего случая:

[activityindicator startanimating];  [self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];
[self performSelectorInBackground:@selector(stopAnimating) :nil];

, затем создайтеметод вроде:

-(void)stopAnimating
{
[activityindicator stopanimating];
}

Вы можете использовать режим сна или что-то подобное (например, сон (1)), чтобы показать индикатор активности, потому что просто показывать их, когда вы нажимаете представление, не будет, потому что это сделано в-time ...

Надеюсь, это поможет!

...