Domanda

problema rapida:

Ho un UITabBarController con 2 controller di navigazione [lascia chiamarli sinistra e destra del controller]

Al di default selezionato lasciata regolatore che può spingere un nuovo View Controller che rileva l'orientamento di interfaccia.

Nel controller destro che può spingere lo stesso View Controller, ma non in grado di rilevare l'orientamento di interfaccia, o per quella materia, non sarà nemmeno andare al metodo shouldAutoRotateInterface affatto T ___ T

Haaalp !!

Se è di qualche rilevanza, la vista Contoller che sto spingendo l'uso della proprietà hidesBottomBarWhenPushed.

È stato utile?

Soluzione

fa il tuo UITabBarController attuare la rotazione automatica? qualsiasi viewcontroller figlio che vuole implementare autorotate deve avere il suo genitore implementare AutoRotate.

Altri suggerimenti

Molto probabilmente questo è il problema:

  

controller barra delle schede supportano un ritratto   orientamento per impostazione predefinita e non   ruotare di un orientamento orizzontale    meno che tutti i controller di vista radice supportano un tale orientamento .   Quando un orientamento del dispositivo   cambiamento avviene, il controller barra delle schede   interroga la sua gamma di controller di vista.   Se uno di loro non supporta   l'orientamento, la barra delle schede   Controller non cambia la sua   orientamento.

La soluzione è eseguire l'override del metodo seguente su ogni controller della vista che conduce alla vista:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
    return YES;
}

Ad esempio, anziché utilizzare il UITabBarController predefinito in IB, sostituirlo con la vostra sottoclasse che contiene solo il metodo di cui sopra.

Sono un po 'in ritardo alla festa su questo, ma mi sono imbattuto in un problema con autorotazione all'avvio per un'applicazione barra delle schede volevo sempre per l'esecuzione in ritratto.

plist del app ha le impostazioni necessarie sia per inizio e solo consentono modalità ritratto, e tutti i miei controller di vista permettono solo in modalità portrait. Eppure, quando ho iniziato l'applicazione tenendo il mio iPhone nel paesaggio, l'applicazione è iniziata nel ritratto, ma poi ruotato in orizzontale!

Invece di sottoclasse UITabBarController, ho il metodo UITabBarController di shouldAutorotateToInterfaceOrientation: semplicemente overrode utilizzando una categoria di classe UITabBarController. Ho incluso questo codice nella mia app delegato:

@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
                 (UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

funziona a meraviglia, ed è molto leggero.

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