Browse Source

Moves viewControllerForKey to use viewForKey with transitions where (#6238)

Moves viewControllerForKey to use viewForKey with transitions where appropriate as discussed in this Stack Overflow post: https://stackoverflow.com/questions/24338700/from-view-controller-disappears-using-uiviewcontrollercontexttransitioning/25193675#25193675

This mainly resolves an issue when using animations with `dismissModal` that results in all views being removed and a black screen appearing as discussed in #6195 

The remaining `viewControllerForKey` calls should probably be removed too where their `view` property is being used, but this seems to resolve the bug for now at least!
Simon Mitchell 4 years ago
parent
commit
fd38fffeeb
No account linked to committer's email address

+ 5
- 5
lib/ios/ModalDismissTransitionDelegate.m View File

@@ -13,12 +13,12 @@
13 13
 }
14 14
 
15 15
 - (void)prepareTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext {
16
-    UIViewController* toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
17
-    UIViewController* fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
16
+    UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
17
+    UIView* fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
18 18
     
19
-    fromVC.view.alpha = 0;
20
-    [transitionContext.containerView addSubview:toVC.view];
21
-    [transitionContext.containerView addSubview:fromVC.view];
19
+    fromView.alpha = 0;
20
+    [transitionContext.containerView addSubview:toView];
21
+    [transitionContext.containerView addSubview:fromView];
22 22
 }
23 23
 
24 24
 @end

+ 3
- 3
lib/ios/ModalTransitionDelegate.m View File

@@ -15,9 +15,9 @@
15 15
 }
16 16
 
17 17
 - (void)prepareTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext {
18
-    UIViewController* toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
19
-    toVC.view.alpha = 0;
20
-    [transitionContext.containerView addSubview:toVC.view];
18
+    UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
19
+    toView.alpha = 0;
20
+    [transitionContext.containerView addSubview:toView];
21 21
 }
22 22
 
23 23
 - (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {

+ 7
- 7
lib/ios/RNNAnimationsTransitionDelegate.m View File

@@ -22,8 +22,8 @@
22 22
 }
23 23
 
24 24
 - (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
25
-	UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
26
-	UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
25
+	UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
26
+	UIView* fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
27 27
 	
28 28
 	[CATransaction begin];
29 29
 	[CATransaction setCompletionBlock:^{
@@ -31,12 +31,12 @@
31 31
 	}];
32 32
 	
33 33
 	if (_isDismiss) {
34
-		[[transitionContext containerView] addSubview:toViewController.view];
35
-		[[transitionContext containerView] addSubview:fromViewController.view];
36
-		[self animateElement:self.transitionOptions view:fromViewController.view elementName:@"content"];
34
+		[[transitionContext containerView] addSubview:toView];
35
+		[[transitionContext containerView] addSubview:fromView];
36
+		[self animateElement:self.transitionOptions view:fromView elementName:@"content"];
37 37
 	} else {
38
-		[[transitionContext containerView] addSubview:toViewController.view];
39
-		[self animateElement:self.transitionOptions view:toViewController.view elementName:@"content"];
38
+		[[transitionContext containerView] addSubview:toView];
39
+		[self animateElement:self.transitionOptions view:toView elementName:@"content"];
40 40
 	}
41 41
 	
42 42
 	[CATransaction commit];

+ 5
- 4
lib/ios/RNNPushAnimation.m View File

@@ -13,11 +13,12 @@
13 13
 }
14 14
 
15 15
 - (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
16
-	UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
17
-	UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
16
+    UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
17
+	UIView* fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
18
+	UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
18 19
 	
19
-	[[transitionContext containerView] addSubview:fromViewController.view];
20
-	[[transitionContext containerView] addSubview:toViewController.view];
20
+	[[transitionContext containerView] addSubview:fromView];
21
+	[[transitionContext containerView] addSubview:toView];
21 22
 	
22 23
 	[CATransaction begin];
23 24
 	[CATransaction setCompletionBlock:^{

+ 3
- 3
lib/ios/TransitionDelegate.m View File

@@ -26,9 +26,9 @@
26 26
 }
27 27
 
28 28
 - (void)prepareTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext {
29
-    UIViewController* toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
30
-    toVC.view.alpha = 0;
31
-    [transitionContext.containerView addSubview:toVC.view];
29
+    UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey];
30
+    toView.alpha = 0;
31
+    [transitionContext.containerView addSubview:toView];
32 32
 }
33 33
 
34 34
 - (void)performAnimationOnce {