2

J'ai une application qui capture des images en utilisant AVCapturesession, j'ai un seul View Controller qui a un UIView à l'intérieur et je cours la session dans cette vue. Lorsque mon application se charge en mode portrait, tout est bon, elle s'ouvre en mode plein écran et en mode paysage, elle reste également en mode plein écran. Comme ma vue est utilisée pour capturer une image, je ne permets pas la rotation capture l'image tout fonctionne bien. Le seul problème est que lorsque mon application s'ouvre en mode paysage, elle n'est pas en plein écran une fois que je la fais pivoter en mode portrait, elle passe en mode plein écran, puis en mode paysage, elle reste en plein écran.Correction d'un problème de rotation en mode paysage

Comment puis-je résoudre ce problème ou y a-t-il un moyen de forcer l'application iOS à toujours s'ouvrir en mode portrait, puis de la faire pivoter?

Répondre

1

J'ai rencontré le même problème. Vous devez implémenter cette méthode dans votre classe de délégué d'application. Voici un exemple. J'espère que c'est ce dont vous avez besoin.

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window 
{ 
    if([window.rootViewController isKindOfClass:[HRMHomeViewController class]]) 
    { 
     id homeViewController = (HRMHomeViewController*)window.rootViewController; 
     if ([[homeViewController presentedViewController] 
      isKindOfClass:[HRMCapturedScreenViewController class]]) 
      return UIInterfaceOrientationMaskPortrait; 
    } 
    return UIInterfaceOrientationMaskAll; 
} 

Avec ce cadre de la méthode de votre couche de caméra tournera selon l'orientation

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
             duration:(NSTimeInterval)duration 
{ 
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation 
              duration:duration]; 
    self.captureManager.cameraLayer.frame = self.videoView.bounds; 
} 

Il existe des méthodes de UINavigationController qui peuvent help.Here est à double sens ou divertissez catégorie de UINavigationController ou en héritent.

- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController 
- (UIInterfaceOrientation)navigationControllerPreferredInterfaceOrientationForPresentation:(UINavigationController *)navigationController