dismissViewControllerAnimated VS popViewControllerAnimated

kev*_*ung 29 uiviewcontroller uinavigationcontroller ios

我想知道它们的不同之处.什么时候我可以打电话

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

什么时候打电话

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

根据apple的文档:dismissViewControllerAnimated意味着"解除接收者提供的视图控制器".但我总是不能通过这种方法解雇视图控制器.

Sen*_*mar 39

您选择的应用程序是基于导航的应用程序

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

您选择的应用程序不是基于导航的应用程序

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)


gra*_*ver 38

-dismissViewControllerAnimated:完成:

用于解雇UIViewController由该方法呈现的:

-presentViewController:animated:completion:.

-popViewControllerAnimated:

方法UINavigationController用于弹出如图所示的控制器

-pushViewController:animated的方法UINavigationController.

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