WWDC2013_218 內容概要 ( 2 )

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>

https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewControllerTransitioningDelegate_protocol/Reference/Reference.html

 <UINavigationControllerDelegate>

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UINavigationControllerDelegate_Protocol/Reference/Reference.html

  <UITabBarControllerDelegate>

http://developer.apple.com/library/ios/documentation/uikit/reference/UITabBarControllerDelegate_Protocol/


• Animation controllers conform to a protocol

  <UIViewControllerAnimatedTransitioning>

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerAnimatedTransitioning_Protocol/Reference/Reference.html


• Interaction controllers conform to a protocol

  <UIViewControllerInteractiveTransitioning>

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerInteractiveTransitioning_protocol/Reference/Reference.html


• A system object passed to the controllers conforms to

  <UIViewControllerContextTransitioning>

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerContextTransitioning_protocol/Reference/Reference.html

發佈了45 篇原創文章 · 獲贊 6 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章