iOS viewController的推出方式 pop dismiss

在iOS中页面推出有两种方式推出页面

  1. popViewControllerAnimated
  2. 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,用法类似。
更多详细信息可参考苹果官方文档

你可能感兴趣的:(iOS viewController的推出方式 pop dismiss)