@@ -11,6 +11,8 @@ import UIKit
1111class InteractivityFirstViewController : UIViewController {
1212 lazy var interactivitySecondViewController : InteractivitySecondViewController = InteractivitySecondViewController ( )
1313 lazy var customTransitionDelegate : InteractivityTransitionDelegate = InteractivityTransitionDelegate ( )
14+ lazy var interactiveTransitionRecognizer : UIScreenEdgePanGestureRecognizer = UIScreenEdgePanGestureRecognizer . init ( target: self , action: Selector ( " interactiveTransitionRecognizerAction: " ) )
15+
1416 override func viewDidLoad( ) {
1517 super. viewDidLoad ( )
1618 view. backgroundColor = [ 224 , 222 , 255 ] . color // 设置背景颜色
@@ -32,19 +34,12 @@ class InteractivityFirstViewController: UIViewController {
3234 button. frame. origin. y = view. frame. maxY - 100
3335 button. setTitleColor ( UIColor . blueColor ( ) , forState: . Normal)
3436 button. setTitle ( " 演示动画 " , forState: . Normal)
35- button. addTarget ( self , action: Selector ( " animationButtonDidClicked " ) , forControlEvents: . TouchUpInside)
37+ button. addTarget ( self , action: Selector ( " animationButtonDidClicked: " ) , forControlEvents: . TouchUpInside)
3638 view. addSubview ( button)
3739
3840 /// 添加滑动交互手势
39- let interactiveTransitionRecognizer = UIScreenEdgePanGestureRecognizer . init ( target: self , action: Selector ( " interactiveTransitionRecognizerAction: " ) )
4041 interactiveTransitionRecognizer. edges = . Right;
4142 self . view. addGestureRecognizer ( interactiveTransitionRecognizer)
42-
43- /// 设置动画代理
44- customTransitionDelegate. gestureRecognizer = interactiveTransitionRecognizer
45- interactivitySecondViewController. transitioningDelegate = customTransitionDelegate
46- interactivitySecondViewController. modalPresentationStyle = . FullScreen
47-
4843 }
4944
5045 override func didReceiveMemoryWarning( ) {
@@ -56,14 +51,25 @@ class InteractivityFirstViewController: UIViewController {
5651extension InteractivityFirstViewController {
5752 func interactiveTransitionRecognizerAction( sender: UIScreenEdgePanGestureRecognizer ) {
5853 if sender. state == . Began {
59-
54+ customTransitionDelegate. gestureRecognizer = interactiveTransitionRecognizer
55+ self . animationButtonDidClicked ( sender)
6056 }
6157 }
6258}
6359
6460extension InteractivityFirstViewController {
65- func animationButtonDidClicked( ) {
61+ func animationButtonDidClicked( sender: AnyObject ) {
62+ /// 设置动画代理
63+ if sender. isKindOfClass ( UIGestureRecognizer) {
64+ customTransitionDelegate. gestureRecognizer = interactiveTransitionRecognizer
65+ }
66+ else {
67+ customTransitionDelegate. gestureRecognizer = nil
68+ }
6669 customTransitionDelegate. targetEdge = . Right
70+ interactivitySecondViewController. transitioningDelegate = customTransitionDelegate
71+ interactivitySecondViewController. modalPresentationStyle = . FullScreen
72+
6773 self . presentViewController ( interactivitySecondViewController, animated: true , completion: nil )
6874 }
6975
0 commit comments