Bala
Bala

Reputation: 136

Activity Indicator not starting animation straight away

I initialize an activity indicator and in a button press action I start it animating and call the next view to display.

-(IBAction) downloadButtonPressed:(id)sender {

    NSLog(@"Download Button Pressed");
    indicator.hidden = NO;
    [indicator startAnimating];

    if (addviewcontroller == nil)
        addviewcontroller = [[AddViewController alloc]init];
    [self.view addSubview:addviewcontroller.view];

    [addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:addviewcontroller animated:YES];

}

When I press the button, the activity indicator doesn't start immediately. It starts when the other view is called. The indicator is displayed for a second, but when the button is pressed it takes some time to load the other view.

I dont know why the indicator shows for a second without starting.

Upvotes: 1

Views: 1587

Answers (1)

Niko
Niko

Reputation: 2543

Try this :

-(IBAction) downloadButtonPressed:(id)sender 
{
    NSLog(@"Download Button Pressed");
    indicator.hidden = NO;
    [indicator startAnimating];
    [self performSelector:@selector(showController) withObject:nil afterDelay:0.1f];
}

- (void)showController {

    if (addviewcontroller == nil)
        addviewcontroller = [[AddViewController alloc]init];
    [self.view addSubview:addviewcontroller.view];

    [addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:addviewcontroller animated:YES];
}

That should do the trick ;-)

EDIT

I just noticed that there is a problem in your code, you are adding your addviewcontroller twice. One by adding it as a subview of the actual view controller, and one by modally presenting another view controller. You should remove one of the statements from this function.

Upvotes: 7

Related Questions