WWDC2013_218 ——
Custom Transitions Using View Controllers ( 2 )
官方视频地址:https://developer.apple.com/wwdc/videos/
此文为自己总结的官方视频的内容概要,正在学习ing...
• Custom view controller transitions
1. Presentations and dismissals
Supported presentation styles
■ UIModalPresentationFullScreen
■ UIModalPresentationCustom(The new modal presentation type)
TIPS:
The from view controller is not removed from the window hierarchy ( * to which)
UIViewController *vc = ...;
id <UIViewControllerTransitioningDelegate> transitioningDelegate;
vc.modalPresentationStyle = UIModalPresentationCustom;
[vc setTransitioningDelegate: transitioningDelegate];
[self presentViewController:vc animated: YES completion: nil];
2. UITabBarController
Nothing to change
■ setSelectedViewController:(UIViewController *)vc;
■ setSelectedIndex:(NSUInteger)idx;
3. UINavigationController
• Nothing to change
■ pushViewController:animated:
■ popViewControllerAnimated:
■ setViewControllers:animated:
4. UICollectionViewController layout-to-layout transitions
• Layout-to-layout navigation transitions
UICollectionViewLayout *layout1,*layout2,*layout3;
UICollectionViewController *cvc1, *cvc2, *cvc3;
cvc1 = [cvc1 initWithCollectionViewLayout:layout1];
...
/* Basically all you need to do is set that one property to yes, and push your view controllers.And all of the view controllers that you push or pop will actually be transitioning, using set collection view layout.*/
[nav pushViewController:cvc1 animated:YES]
cvc2.useLayoutToLayoutNavigationTransitions = YES;
cvc3.useLayoutToLayoutNavigationTransitions = YES;
[nav pushViewController:cvc2 animated:YES];
[nav pushViewController:cvc3 animated:YES];
[nav popViewControllerAnimated:YES];
5. The anatomy of a transition
• Start state
■ Consistent view controller hierarchy and view hierarchy
• User or programmatic transition commences
• Internal structures are updated, callbacks made, etc.
• Container view, and start and final view positions are computed
• Optional animation to end state view hierarchy is run
• Animation completes
■ Internal structures are updated, callbacks made, etc. • End State
■ Consistent view controller hierarchy and view hierarchy
6. Wiring it all together
• Animation and interaction controllers are vended by delegates
<UIViewControllerTransitioningDelegate>
<UINavigationControllerDelegate>
<UITabBarControllerDelegate>
• Animation controllers conform to a protocol
<UIViewControllerAnimatedTransitioning>
• Interaction controllers conform to a protocol
<UIViewControllerInteractiveTransitioning>
• A system object passed to the controllers conforms to
<UIViewControllerContextTransitioning>