Skip to content

Commit 40154d7

Browse files
vijaysingh-axwayssekhri
authored and
ssekhri
committedOct 3, 2019
fix(ios): close window handling from presentationController’s delegate method (#11256)
1 parent 057dad3 commit 40154d7

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed
 

‎iphone/TitaniumKit/TitaniumKit/Sources/API/TiControllerProtocols.h

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
- (void)viewWillDisappear:(BOOL)animated;
4141
- (void)viewDidAppear:(BOOL)animated;
4242
- (void)viewDidDisappear:(BOOL)animated;
43+
- (void)presentationControllerDidDismiss:(UIPresentationController *)presentationController;
44+
- (void)presentationControllerWillDismiss:(UIPresentationController *)presentationController;
4345

4446
- (void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container;
4547
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator;

‎iphone/TitaniumKit/TitaniumKit/Sources/API/TiViewController.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#import "TiControllerProtocols.h"
99
#import <UIKit/UIKit.h>
1010

11-
@interface TiViewController : UIViewController {
11+
@interface TiViewController : UIViewController <UIAdaptivePresentationControllerDelegate> {
1212

1313
TiViewProxy *_proxy;
1414
TiOrientationFlags _supportedOrientations;

‎iphone/TitaniumKit/TitaniumKit/Sources/API/TiViewController.m

+17
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ - (id)initWithViewProxy:(TiViewProxy *)window
1414
{
1515
if (self = [super init]) {
1616
_proxy = window;
17+
self.presentationController.delegate = self;
1718
[self updateOrientations];
1819
[TiUtils configureController:self withObject:_proxy];
1920
}
@@ -167,6 +168,22 @@ - (void)viewDidDisappear:(BOOL)animated
167168
[super viewDidDisappear:animated];
168169
}
169170

171+
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
172+
- (void)presentationControllerWillDismiss:(UIPresentationController *)presentationController
173+
{
174+
if ([_proxy conformsToProtocol:@protocol(TiWindowProtocol)]) {
175+
[(id<TiWindowProtocol>)_proxy presentationControllerWillDismiss:presentationController];
176+
}
177+
}
178+
179+
- (void)presentationControllerDidDismiss:(UIPresentationController *)presentationController
180+
{
181+
if ([_proxy conformsToProtocol:@protocol(TiWindowProtocol)]) {
182+
[(id<TiWindowProtocol>)_proxy presentationControllerDidDismiss:presentationController];
183+
}
184+
}
185+
#endif
186+
170187
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
171188
{
172189
if ([_proxy conformsToProtocol:@protocol(TiWindowProtocol)]) {

‎iphone/TitaniumKit/TitaniumKit/Sources/API/TiWindowProxy.m

+15-1
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,21 @@ - (void)viewDidAppear:(BOOL)animated
741741
}
742742
- (void)viewDidDisappear:(BOOL)animated
743743
{
744-
if (isModal && (closing || !forceModal)) {
744+
if (isModal && closing) {
745+
[self windowDidClose];
746+
}
747+
}
748+
749+
- (void)presentationControllerWillDismiss:(UIPresentationController *)presentationController
750+
{
751+
if (isModal) {
752+
[self windowWillClose];
753+
}
754+
}
755+
756+
- (void)presentationControllerDidDismiss:(UIPresentationController *)presentationController
757+
{
758+
if (isModal) {
745759
[self windowDidClose];
746760
}
747761
}

0 commit comments

Comments
 (0)
Please sign in to comment.