0

J'ai besoin d'aide ici, j'utilise une section personnalisée pour pousser un contrôleur de vue vers un autre contrôleur de vue. Lorsque cette fonction est activée à l'aide de la fonction de coupure, l'indicateur d'activité ne s'anime pas automatiquement lorsque la vue est chargée.UIActivityIndicatorView geler lors de l'utilisation de segue personnalisée

Toutefois, si j'utilise la méthode push sur le storyboard, l'indicateur d'activité de l'animation s'anime automatiquement.

Qu'est-ce que j'avais fait de mal?

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

} 

Répondre

1

Essayez ceci:

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

Le -pushViewController:animated: ne doit pas être roulés dans le bloc d'animation, mais le bloc d'achèvement.

+0

salut xan, merci pour la réponse ... ça marche mais j'ai perdu les animations. une solution de contournement? – Desmond

+0

Définissez l'option de transition telle que 'UIViewAnimationOptionTransitionCrossDissolve' pour le paramètre d'option, puis cela devrait fonctionner. – cxa

+0

salut xan, l'ai essayé. ne fonctionne pas :( – Desmond

Questions connexes