Bogues rencontrés dans la scène de commutation modale du développement iOS

Scène du projet:

Code segue: utilisez le code UIModalTransitionStylePartialCurl (transition d'effet de retournement d'écran vertical) pour basculer vers le nouveau ViewController, utilisez le code ignoreViewControllerAnimated: YES pour revenir au ViewController précédent lorsque l'animation est bloquée

Description du problème:

1. Utilisez le code UIModalTransitionStylePartialCurl (transition d'effet de retournement d'écran vertical) pour basculer vers le nouveau ViewController

//代码实现切换到第四场景
- (IBAction)gotoFourthView:(id)sender {
    
    
    //获取Main.storyboard
    UIStoryboard * sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //获取新的viewcontroler
    FourthViewController * fvc = [sb instantiateViewControllerWithIdentifier:@"fourthview"];
    //过度翻页效果
    fvc.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    //过度页面采用modal样式
    fvc.modalPresentationStyle = UIModalPresentationFullScreen;
    //展示新页面
    [self presentViewController:fvc animated:YES completion:nil];
}

2. Lorsque le nouveau ViewController utilise le code.

//返回上一层页面
- (IBAction)backToPreviosView:(id)sender {
    
    
    UIViewController *presentingVc = self.presentingViewController;
    //    while (presentingVc.presentingViewController) {
    
    
    //        presentingVc = presentingVc.presentingViewController;
    //    }
    if(presentingVc){
    
    
        [presentingVc dismissViewControllerAnimated:YES completion:nil];
    }
}

3. Comme indiqué sur la figure:

Insérez la description de l'image ici


Analyse des causes:

Astuce: remplissez ici l'analyse du problème:
raison inconnue


Solution:

  1. N'utilisez pas le style UIModalTransitionStylePartialCurl, utilisez les trois autres pour revenir à la normale, par exemple:
  • UIModalTransitionStyleCoverVertical
  • UIModalTransitionStyleFlipHorizontal
  • UIModalTransitionStyleCrossDissolve
  1. Si vous devez utiliser le style IModalTransitionStylePartialCurl, alors lorsque vous revenez, choisissez NO
    [presentantVc licencierViewControllerAnimated: NO completion: nil];

Je suppose que tu aimes

Origine blog.csdn.net/Suarez1987/article/details/108385565
conseillé
Classement