- 模态视图出现的场景一般是临时弹出的窗口,譬如:登陆窗口。
- 以模态窗口的形式管理视图,当前视图关闭前其他视图上的内容无法操作。
- 由 视图控制器类对象调用presentModalViewController: 方法。
2、modalTransitionStyle属性
- 模态视图弹出时可通过该属性设置不同的动画效果 ,包含类型如下:
- UIModalTransitionStyleCoverVertical, //自下而上
- UIModalTransitionStyleFlipHorizontal, //自左至右180度翻转
- UIModalTransitionStyleCrossDissolve, //淡出效果
- UIModalTransitionStylePartialCurl //翻页效果
3、关闭方法:dismissModalViewControllerAnimated:
- 由 视图控制器类对象调用dismissModalViewControllerAnimated: 方法。
4、获取不同的模态窗口(主要的属性)
- @property(nonatomic,readonly) UIViewController *presentedViewController ;//当前控制器模态出的窗口
- @property(nonatomic,readonly) UIViewController *presentingViewController;//模态出当前控制器的窗口
5、处理模态窗口(主要的方法)
- - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion);//显示想要显示的模态窗口
- - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion);//关闭当前显示的模态窗口
- -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id) //当前控制器模态另一个窗口并传输数据时调用的方法
6、示例
ModalTestController *vc = [[ModalTestController alloc] init];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
vc.hidesBottomBarWhenPushed = YES;
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:vc];
navi.definesPresentationContext = YES;
navi.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentViewController:navi animated:YES completion:^{
navi.navigationBarHidden = YES;
}];