Индикатор активности не запускает анимацию сразу - PullRequest
1 голос
/ 15 декабря 2011

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

-(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];

}

Когда я нажимаю кнопку, индикатор активности не запускается сразу.Он начинается, когда вызывается другой вид.Индикатор отображается в течение секунды, но при нажатии кнопки требуется некоторое время для загрузки другого представления.

Я не знаю, почему индикатор отображается в течение секунды без запуска.

1 Ответ

7 голосов
/ 15 декабря 2011

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

-(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];
}

Это должно сработать; -)

EDIT

Я только что заметил, что в вашем коде есть проблема, вы добавляете свой addviewcontroller дважды. Один, добавив его как подпредставление фактического контроллера представления, и один, представив модально другой контроллер представления. Вы должны удалить одно из утверждений из этой функции.

...