Skip to content

Instantly share code, notes, and snippets.

@zrxq
Created February 2, 2013 05:10
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 zrxq/4696183 to your computer and use it in GitHub Desktop.
Save zrxq/4696183 to your computer and use it in GitHub Desktop.
Modal overlay views with orientation support
//
// UIViewController+ZWDModalOverlay.h
//
// Created by Zoreslav Khimich on 28/01/2013.
// Copyright (c) 2013 zrxq. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIViewController (ZWDModalOverlay)
- (void)presentModalOverlayViewController:(UIViewController *)modalOverlayViewController;
- (void)dismissModalOverlayViewController;
@end
//
// UIViewController+ZWDModalOverlay.m
//
// Created by Zoreslav Khimich on 28/01/2013.
// Copyright (c) 2013 zrxq. All rights reserved.
//
#import "UIViewController+ZWDModalOverlay.h"
static UIWindow *overlayWindow() {
static UIWindow *overlayWindow = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
overlayWindow = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
overlayWindow.backgroundColor = [UIColor clearColor];
overlayWindow.windowLevel = UIWindowLevelAlert;
overlayWindow.userInteractionEnabled = YES;
});
return overlayWindow;
}
@implementation UIViewController (ZWDModalOverlay)
- (void)presentModalOverlayViewController:(UIViewController *)modalOverlayViewController {
UIWindow *window = overlayWindow();
[window setRootViewController:modalOverlayViewController];
[window makeKeyAndVisible];
}
- (void)dismissModalOverlayViewController {
UIWindow *window = overlayWindow();
[window resignKeyWindow];
[window setHidden:YES];
[window setRootViewController:nil];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment