La mia app supporta solo l'orientamento orizzontale.La transizione animata non funziona correttamente nell'orientamento orizzontale
Sto provando a passare alla vista di un controller di visualizzazione, ma quando esegue l'animazione di transizione (come ad esempio il curl su), la vista viene ruotata di 90 gradi (quindi, il simulatore è ancora orientato in orizzontale, ma la vista appare ruotata di 90 gradi). Al termine della transizione, ruota verso l'orientamento corretto. Il mio codice è sotto
- (IBAction)buttonTouched
{
MyViewController *aViewController = [[MyViewController alloc] initWithNibName:NSStringFromClass([MyViewController class]) bundle:nil];
[UIView transitionFromView:self.view
toView:aViewController.view
duration:2
options:UIViewAnimationOptionTransitionCurlUp
completion:NULL];
}
Sembra come se la vista non ottenere il "orientamento è cambiato" la notifica, in modo che la presenta in verticale, e passa allo paesaggio dopo la fine dell'animazione. L'ho impostato in IB in modo che sia tutto disposto in orizzontale.
EDIT: Ho anche provato ad aggiungere un controller di visualizzazione al file IB di sé e la transizione a quella vista (pensando che forse era troppo vicino tra l'inizializzazione e la transizione) ma la stessa cosa è accaduta.
Wow ... ottima risposta. Grazie! – Ned
Risposta davvero importante, ho salvato la giornata! – BootMaker
Ho salvato anche la mia giornata, tuttavia c'è un piccolo errore di battitura nella seconda opzione: [self setViewToLandscape: aViewController.view]; dovrebbe essere: [self setNewViewToLandscape: aViewController.view]; usando la tua convenzione di denominazione. Inoltre, se il nuovo controller di visualizzazione è in orizzontale, basta scambiare larghezza e altezza qui: [viewObject setCenter: CGPointMake (self.view.frame.size.width/2, self.view.frame.size.height/2)]; (che lo renderà centrato correttamente. – Dado