Skip to content

Instantly share code, notes, and snippets.

@alexruperez
Last active April 4, 2016 10:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexruperez/ab5e175d40413faea0a8 to your computer and use it in GitHub Desktop.
Save alexruperez/ab5e175d40413faea0a8 to your computer and use it in GitHub Desktop.
Fix SFSafariViewController StatusBar Style, StatusBar Hidden and freezing when swiping back on iOS 9.2
//
// ARSafariViewController.h
//
// Copyright © 2016 alexruperez. The MIT License (MIT)
//
@import SafariServices;
@interface ARSafariViewController : SFSafariViewController
@end
//
// ARSafariViewController.m
//
// Copyright © 2016 alexruperez. The MIT License (MIT)
//
#import "ARSafariViewController.h"
@interface ARSafariViewController ()
@property (nonatomic, assign) BOOL isSwipingBack;
@end
@implementation ARSafariViewController
- (UIStatusBarStyle)preferredStatusBarStyle
{
if (self.isSwipingBack)
{
return [self.presentingViewController preferredStatusBarStyle];
}
return [super preferredStatusBarStyle];
}
- (BOOL)prefersStatusBarHidden
{
if (self.isSwipingBack)
{
return [self.presentingViewController prefersStatusBarHidden];
}
return [super prefersStatusBarHidden];
}
- (void)viewWillDisappear:(BOOL)animated
{
self.isSwipingBack = YES;
[self.transitionCoordinator notifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext> context) {
self.isSwipingBack = NO;
}];
[super viewWillDisappear:animated];
}
- (void)setIsSwipingBack:(BOOL)isSwipingBack
{
_isSwipingBack = isSwipingBack;
[self setNeedsStatusBarAppearanceUpdate];
}
@end
@bartvandendriessche
Copy link

I found this doesn't work if

return [self.presentingViewController preferredStatusBarStyle];

returns UIStatusBarDefault but just returning my desired UIStatusBarStyle worked like a charm.

Thanks for sharing, clever workaround.

@alexruperez
Copy link
Author

Thanks @bartvandendriessche 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment