切正题
我们都知道在使用alertView actionSheet等系统控件,他们的共同的特性就是会有一层灰色的view遮盖了与当前页面的交互.并且点击控件以外的灰色区域,会回到之前的页面.
那么我们有时候也是需要用户在我们弹出的控件上进行操作,并且不希望用户看不到当前页面,同时又希望用户在我们弹出的控件操作完成之前不能进行其他的操作,那这个时候我们就需要上面说到的所谓的"蒙版"(个人叫法).
平常的做法是设置一个全屏view,设置下透明度就ok.但是有时候会遇到在有navigationController或者tabBar的情况下设置全屏蒙版.这个时候
[self.view addSubview:yourView];
就会出现上面或者下面是盖不住的尴尬境地.
so,在有navigation的情况就需要这样使用
[self.navigationController.view addSubview:yourView];
这种情况下view的移除直接使用removeFromSuperview是没有效果的
for (UIView *view in self.navigationController.view.subviews) {
if (view.tag == yourView) {
[view removeFromSuperview];
}
}
ps,在有tabBar的情况下,时间所限尚未实际实践.留个坑