Używam następujących kodów, aby zmienić kontroler w mojej aplikacji 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];
Ale przejście jest dziwne i nigdy nie jest tak płynne, jak domyślne przejście do Three20, np. Przejdź z TTTableViewController do TTViewController
Ktoś może zapewnić lepsze kody dla płynniejszego przejścia?
Czy możliwe jest przesyłanie tylko treści między NavigationController i TabBar? (Mam na myśli to, że nie można dotknąć przycisku w istniejącym kontrolerze NavigationController)
Dzięki.
Odpowiedzi:
0 dla odpowiedzi № 1W rzeczywistości animujesz dwa razy. Najpierw powiedz trzy20, aby zastosować animację przez [urlAction applyAnimated:YES];
a następnie dołączasz swoją własną animację.
Usuń applyAnimated: i działa dobrze. Testowany przy pomocy Three20 1.0.11 na symulatorze i urządzeniu iOS5.
To może być sprytne w użyciu [TTNavigator navigator].topController
zamiast self.navigationController
aby uzyskać kontroler, który wyświetli adres URL. W pewnych okolicznościach może być inaczej.