在iOS中页面推出有两种方式推出页面
- popViewControllerAnimated
- dismissViewControllerAnimated
Pop
- 只能用于navigationcontroller,
- popViewControllerAnimated对应于pushViewController
- push的页面才可以通过pop推出
Dismiss
- 可以用于任意viewcontroller
- dismissViewControllerAnimated对应于presentViewController
- 使用present的页面可以通过dismiss推出
使用present推出页面的方式
present页面的代码如下:
ViewController * presentVC = [[ViewController alloc] init];
[self presentViewController: presentVC animated:NO completion:^{
NSLog(@"present");
}];
如果想要设置present的动画效果,可以如下设置:
presentVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; //此处应当设置被present的页面而不是当前页面
查看代码可以知道present动画有如下四种:
typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal __TVOS_PROHIBITED,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED,
};
默认第一种。
此外还有UIModalPresentationStyle,用法类似。
更多详细信息可参考苹果官方文档