Sto usando i seguenti codici per cambiare controller nella mia app Three20
TTURLAction * urlAction = [TTURLAction actionWithURLPath:url];
[urlAction applyAnimated:YES];
CATransition * transition = [CATransition animation];
transition.duration = 0.4f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[[TTNavigator navigator] openURLAction:urlAction];
Ma la transizione è strana e mai fluida come la transizione predefinita di Three20, ad es. Passa da TTTableViewController a TTViewController
Qualcuno può fornire un codice migliore per una transizione più fluida?
È possibile trasferire solo il contenuto tra NavigationController e TabBar? (Voglio dire, non toccare il pulsante nel NavigationController esistente)
Grazie.
risposte:
0 per risposta № 1Stai infatti animando due volte. Per prima cosa dici a three20 di applicare l'animazione [urlAction applyAnimated:YES];
e quindi stai allegando la tua animazione.
Rimuovi applyAnimated: e funziona perfettamente. Testato con Three20 1.0.11 su iOS5 Simulator e dispositivo.
Potrebbe essere intelligente da usare [TTNavigator navigator].topController
invece di self.navigationController
per ottenere il controller che presenterà l'URL. Questo potrebbe essere diverso in alcune circostanze.