Pergunta

preciso de ajuda aqui, estou usando um segue personalizado para enviar um controlador de visualização para outro controlador de visualização.

quando pressionado usando cutom segue, o uiactivityindicator não será animado automaticamente quando a visualização for carregada.

no entanto, se eu usar o método push no storyboard, o uiactivityindicator será animado automaticamente.

o que eu fiz de errado?

-(void)perform {
    UIViewController *sourceVC = (UIViewController *) self.sourceViewController;
    UIViewController *destinationVC = (UIViewController *) self.destinationViewController;

    [UIView transitionWithView:sourceVC.navigationController.view duration:0.5
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    animations:^{
                        [sourceVC.navigationController pushViewController:destinationVC animated:NO];
                        //NSLog(@"count of subview %i", [self.view.subviews count]);
                    }
                    completion:NULL];

}
Foi útil?

Solução

Experimente isto:

UIViewController *sourceVC = (UIViewController *) self.sourceViewController;
UIViewController *destinationVC = (UIViewController *) self.destinationViewController;

[UIView transitionFromView:sourceVC.view toView:destinationVC.view duration:.5 options:0 completion:^(BOOL finished) {
  [sourceVC.navigationController pushViewController:destinationVC animated:NO];
}];

O -pushViewController:animated: não deve ser colocado no bloco de animação, mas no bloco de conclusão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top