关闭

iOS在当前视图中推出另外一个背景透明的视图控制器

标签: ios
777人阅读 评论(0) 收藏 举报

今天突然遇到这个需求,搜一下网上类似的解决方案,结果只有一个是用swift写的给了我启发,所以总结一下oc的解决方案:

eg: viewcontroller1 为当前视图控制器, viewcontroller2 为需要在 viewcontroller1上展示的底部透明的视图控制器


1.在viewcontroller1 要触发该功能的事件添加如下代码

   Viewcontroller2 *viewcontroller2 = [[Viewcontroller2 alloc]init];

   viewcontroller2.view.backgroundColor=[UIColorcolorWithRed:0green:0 blue:0 alpha:0.5];

    [selfpresentViewController:viewcontroller2animated:YEScompletion:nil];

此处需要注意:您要展示的那个底色透明的视图控制器 设置透明属性必须在这里提前设置

2.在 viewcontroller2 中的viewDidLoad 方法中添加

    self.modalPresentationStyle =UIModalPresentationCustom;


注意 style 的样式 


重新修改:(9月8日)

上面的代码片段在ios8.0系统上是没有任何错误的的,对于ios7.0系统这时候弹出的视图会存在背景界面为黑色的情况,所以作如下修改:

if(iOS(8.0)){

viewcontroller2.modalPresentationStyle = UIModalPresentationOverCurrentContext;

}else{

viewcontroller1.modalPresentationStyle = UIModalPresentationCurrentContext;

}

显示界面的背景颜色直接在要弹出的界面里面修改:

viewcontroller2.view.backgroundColor=[UIColorcolorWithRed:0green:0 blue:0 alpha:0.5];


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    文章分类
    最新评论
  • iOS tabbar使用总结

    ws745630: 关于你的tessract 识别中文闪退,您找到原因了吗?还有关于图像矫正的一些问题你当时用的是ope...