Possiedo un UINavigationController. Ho creato VC1 come rootViewController e caricato in modo programmato VC2 da VC1 e quindi l'animazione personalizzata per passare da VC1 a VC2. Standard. Tutto va bene e bene.Personalizza animazione UINavigationController: CATransition
Ora, mi piacerebbe avere un'animazione personalizzata tra i due in questo modo:
In sintesi, diapositive VC1 di vista mentre VC2 è sotto di esso. Proprio come una pila di carta in cui si fa scorrere il primo foglio (VC1) e si rivela così il foglio sottostante (VC2).
Quindi quello che ho provato è il seguente codice che viene chiamato da VC1 per arrivare a VC2. Ma ci sono problemi con esso:
MyVC2 *vctwo = [[[MyVC2 alloc] init] autorelease];
CATransition *transition = [CATransition animation];
transition.duration = 1;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromRight;
transition.delegate = self;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[[self navigationController] pushViewController:vctwo animated:YES];
I problemi sono i seguenti:
- VC2 non è fisso in background. È anche una sorta di diapositive (anche se ho specificato kCATransitionReveal). Voglio essere VC2 completamente fisso sullo sfondo.
- VC1 si dissolve. Non so davvero perché. Non ho usato kCATransitionFade o simili, quindi non riesco a vedere da dove viene la dissolvenza.
Qualsiasi suggerimento perché non ottengo i risultati attesi sarebbe molto apprezzato. Scusa se è ovvio, ma ci sto provando da ore e mi sono sentito davvero frustrato.
Grazie Ole, l'ho modificato e VC2 non si sposta più. Avrei dovuto pensarci. Qualche idea sulla dissolvenza, però? Non riesco ancora a vedere da dove provenga l'animazione in dissolvenza. –
Penso che la dissolvenza sia in realtà parte integrante dell'animazione UINavigationController e non riesco a liberarmene. Sei a conoscenza di un modo per disattivare l'animazione di dissolvenza personalizzata implementata da UINavigationController? –