项目中经常用到类似iOS原生的UIAlertView的弹出框,普通的用视图覆盖的方式是不能覆盖掉NavigationBar的,所以需要用到UIWindow来实现效果。
1、首先需要创建一个UIWindow的单例来创建一个放在所有视图之上的覆盖层。我的类叫做JDTopLayerWindow,继承自UIWindow
+ (JDTopLayerWindow *)sharedInstance
{
static id sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] initWithFrame:[UIScreen mainScreen].bounds];
});
return sharedInstance;
}
UIWindow的单例创建好之后,在-(instancetype)initWithFrame:(CGRect)frame 方法中加入自己自定义的视图就可以了