Skip to content

Commit ff9fd2f

Browse files
committed
Merge branch 'QA' of ssh://github.com/BranchMetrics/ios-branch-deep-linking into QA
2 parents 3485bd0 + 18d645b commit ff9fd2f

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

Branch-SDK/Branch-SDK/BNCStrongMatchHelper.m

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,25 @@ - (UIWindow*) keyWindow {
248248
return nil;
249249
}
250250

251+
/**
252+
Find the top view controller that is not of type UINavigationController or UITabBarController
253+
*/
254+
- (UIViewController *)topViewController:(UIViewController *)baseViewController {
255+
if ([baseViewController isKindOfClass:[UINavigationController class]]) {
256+
return [self topViewController: ((UINavigationController *)baseViewController).visibleViewController];
257+
}
258+
259+
if ([baseViewController isKindOfClass:[UITabBarController class]]) {
260+
return [self topViewController: ((UITabBarController *)baseViewController).selectedViewController];
261+
}
262+
263+
if ([baseViewController presentedViewController] != nil) {
264+
return [self topViewController: [baseViewController presentedViewController]];
265+
}
266+
267+
return baseViewController;
268+
}
269+
251270
- (BOOL) willLoadViewControllerWithURL:(NSURL*)matchURL {
252271
if (self.primaryWindow) return NO;
253272

@@ -291,11 +310,13 @@ - (BOOL) willLoadViewControllerWithURL:(NSURL*)matchURL {
291310
self.matchView.alpha = 1.0;
292311
[self.matchView addSubview:self.matchViewController.view];
293312

294-
[self.primaryWindow.rootViewController addChildViewController:self.matchViewController];
295-
UIView *parentView = self.primaryWindow.rootViewController.view ?: self.primaryWindow;
313+
UIViewController *rootViewController = [self topViewController:self.primaryWindow.rootViewController];
314+
315+
[rootViewController addChildViewController:self.matchViewController];
316+
UIView *parentView = rootViewController.view ?: self.primaryWindow;
296317
[parentView insertSubview:self.matchView atIndex:0];
297318

298-
[self.matchViewController didMoveToParentViewController:self.primaryWindow.rootViewController];
319+
[self.matchViewController didMoveToParentViewController:rootViewController];
299320

300321
return YES;
301322
}

0 commit comments

Comments
 (0)