平时我们一般会将提示框,贴在VC的最上层,我自己为了方便,一般会用到 self.view.window addSubview 这个方法,但是当在rootVC中的willapper里面添加的话,会出现不显示问题,有两个解决的办法,
第一种(自身不建议)
原来是延迟显示,等待view全部加载完毕之后,执行方法
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self performSelector:@selector(createRealNameTintView) withObject:nil afterDelay:1];
[self createRealNameTintView];
}
- (void)createRealNameTintView {
self.realNameTintView = [[RealNameApproveView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
self.realNameTintView.delegate = self;
[self.view.window addSubview:self.realNameTintView];
}
第二种 会方便快捷很多
原理 是直接找到Window 将视图放在上面,并且不会出现延迟效果
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self createRealNameTintView];
}
- (void)createRealNameTintView {
self.realNameTintView = [[RealNameApproveView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
self.realNameTintView.delegate = self;
[[UIApplication sharedApplication].keyWindow addSubview:self.realNameTintView];
}