dismissViewControllerAnimated VS popViewControllerAnimated

我想知道他们有什么不同。 当我可以打电话

[self dismissViewControllerAnimated:YES completion:nil]; 

什么时候该打电话

 [self.navigationController popViewControllerAnimated:YES]; 

根据苹果的文档:dismissViewControllerAnimated的意思是“解除接收器呈现的视图控制器”。 但是我总是不能通过这种方法解雇视图控制器。

您select的应用程序是基于导航的应用程

 [self.navigationController popViewControllerAnimated:YES]; 

您select的应用程序不是基于导航的应用程序手段

 [self dismissViewControllerAnimated:YES completion:nil]; 

-dismissViewControllerAnimated:完成:

用来closures一个UIViewController ,它是由该方法提供的:

-presentViewController:animated:completion:

-popViewControllerAnimated:

UINavigationController方法是用来popup一个控制器显示的

-pushViewController:animated UINavigationController -pushViewController:animated方法。

在第一种情况下,视图控制器视图显示为模式控制器(通常从下到上),第二种情况是在UINavigationController的导航堆栈中推送视图控制器。