dismissViewControllerAnimated VS popViewController

2019-01-22 02:40发布

I want to know what is the different of them. when I can call

[self dismissViewControllerAnimated:YES completion:nil];

and when I should call

[self.navigationController popViewControllerAnimated:YES];

according document of apple: dismissViewControllerAnimated means "Dismisses the view controller that was presented by the receiver." But I always fail to dismiss view controller by this method.

2条回答
聊天终结者
2楼-- · 2019-01-22 02:59

your selected application is navigation based application means

[self.navigationController popViewControllerAnimated:YES];

your selected application is other than the navigation based application means

[self dismissViewControllerAnimated:YES completion:nil];
查看更多
Evening l夕情丶
3楼-- · 2019-01-22 03:04

-dismissViewControllerAnimated:completion:

Used to dismiss an UIViewController, which was presented by the method:

-presentViewController:animated:completion:.

-popViewControllerAnimated:

Method of UINavigationController is used to pop a controller shown by

-pushViewController:animated method of UINavigationController.

In the first case the view controller's view shows as a modal controller (usually from bottom to top), and the second case you are pushing a view controller in the navigation stack of UINavigationController.

查看更多
登录 后发表回答