Sto provando a creare una sequenza personalizzata in modo che il controller della vista di destinazione scorra dall'alto.Il controller della vista di origine si nasconde durante i passaggi personalizzati
Ho scritto il mio codice in base all'esempio da the documentation.
Il problema è che quando viene eseguito il seguito, il controller della vista sorgente diventa nero e quindi si verifica l'animazione. Come posso evitare che il controller della vista sorgente diventi nero?
(ho già provato l'implementazione della soluzione presentata in this answer ma lo schermo o diventa nero dopo la transizione, o torna al controller della vista di origine.)
Ecco il mio codice:
-(void)perform{
UIViewController *splashScreen = self.sourceViewController;
UIViewController *mainScreen = self.destinationViewController;
//Place the destination VC above the visible area
mainScreen.view.center = CGPointMake(mainScreen.view.center.x,
mainScreen.view.center.y-600);
//Animation to move the VC down into the visible area
[UIView animateWithDuration:1
animations:^{
mainScreen.view.center = CGPointMake(mainScreen.view.center.x, [[UIScreen mainScreen] bounds].size.height/2);
}
];
[splashScreen presentModalViewController:mainScreen animated:NO];
}
La soluzione è incredibilmente semplice. È necessario terminare l'animazione PRIMA di presentare il nuovo controller di visualizzazione. Non c'è nient'altro. – Fattie