模态页面的小知识点

最近遇到了2个简单的模态场景,供自己记录,方便使用

1、A页面模态一个新控制器,新控制器透明可以看到A页面的视图

ManagerChildAgeViewController *vc = [ManagerChildAgeViewController new];
vc.childDataArray = self.childDataArray;  
//设置ViewController的模态模式,即ViewController的显示方式
vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:vc animated:NO completion:^{
        
        [MBManager hidePPYXLogoAlert];
        //设置ViewController的背景颜色及透明度
        vc.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
    }];

UIModalPresentationStyle的样式解析

      UIModalPresentationFullScreen =0,//由下到上,全屏覆盖
      UIModalPresentationPageSheet,//在portrait时是FullScreen,在landscape时和FormSheet模式一样。
      UIModalPresentationFormSheet,// 会将窗口缩小,使之居于屏幕中间。在portrait和landscape下都一样,但要注意landscape下如果软键盘出现,窗口位置会调整。
      UIModalPresentationCurrentContext,//这种模式下,presented VC的弹出方式和presenting VC的父VC的方式相同。
      UIModalPresentationCustom,//自定义视图展示风格,由一个自定义演示控制器和一个或多个自定义动画对象组成。符合UIViewControllerTransitioningDelegate协议。使用视图控制器的transitioningDelegate设定您的自定义转换。
      UIModalPresentationOverFullScreen,//如果视图没有被填满,底层视图可以透过
      UIModalPresentationOverCurrentContext,//视图全部被透过
      UIModalPresentationPopover,
      UIModalPresentationNone ,
};

UIModalTransitionStyle的动画效果展示

        UIModalTransitionStyleCoverVertical = 0,
        UIModalTransitionStyleFlipHorizontal __TVOS_PROHIBITED,
        UIModalTransitionStyleCrossDissolve,
        UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
};

2、在主页面模态新页面时,需要隐藏底部的tabbar

ManagerForLinkVC *vc = [ManagerForLinkVC new];
            self.definesPresentationContext = YES;//self指的界面A
            vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
            vc.view.superview.frame = CGRectMake(0, 0, WIDTH, HEIGHT-TabbarHeight);//重新设置界面C的view的大小

模式的原文链接

你可能感兴趣的:(模态页面的小知识点)