Domanda

Sto lavorando sull'app. L'orientamento dell'app è il paesaggio ma dopo l'orientamento dell'interfaccia di app per l'app cambia l'interfaccia e ruota. Display della schermata Splash in modo corretto (paesaggio). Sto usando iOS7 L'app era il codice per iOS5 Penso che ci sia un numero di API deprecato, ad esempio il bot di AuTeloToToToInterfaceorientation chiamato perché non è più disponibile negli ultimi iOS

enter image description here

È stato utile?

Soluzione

Se vuoi che tutti i nostri controller di navigazione rispettino il controller di vista superiore, puoi utilizzare una categoria in modo da non dover passare e cambiare un sacco di nomi di classe.

 @implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
   return [[self.viewControllers lastObject] shouldAutorotate];
 } 

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject]     preferredInterfaceOrientationForPresentation];
}

@end

Come alcuni dei commenti indicano, questa è una soluzione rapida al problema. Una soluzione migliore è UinavigationController sottoclasse e metti lì questi metodi. Una sottoclasse aiuta anche a supportare 6 e 7.

Altri suggerimenti

enter image description here

Devi impostare Onatain in build owing Vedi immagine.

Risolverà il tuo problema.

Prova questo:

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

MODIFICARE :

Vedere l'allegato collegamento, potrebbe essere utile per te.

Trovo la soluzione che pensa che sia. Passaggio uno sovraccarico del miocontroller Uinavigation creando una categoria

Passaggio due Sostituire [Self.Window AddSubView: [NavigationController View]]; //VECCHIO

Con [Self.Window SetRootViewController: NavigationController]; //NUOVO

Usalo in appdelegate.m

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    NSLog(@"Interface orientations");
    if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad ){

        return UIInterfaceOrientationMaskLandScape;
    }
    else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

Mi ha aiutato ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top