web-dev-qa-db-ja.com

dismissViewControllerAnimated VS popViewControllerAnimated

それらの違いを知りたい。電話できるとき

[self dismissViewControllerAnimated:YES completion:nil];

そして私が電話をかけるべき時

[self.navigationController popViewControllerAnimated:YES];

appleのドキュメントによれば、dismissViewControllerAnimatedは「レシーバーによって提示されたビューコントローラーを閉じる」ことを意味します。しかし、私は常にこの方法でビューコントローラを閉じることに失敗します。

29
kevin young

選択したアプリケーションはナビゲーションベースのアプリケーション手段です

[self.navigationController popViewControllerAnimated:YES];

選択したアプリケーションは、ナビゲーションベースのアプリケーション手段以外です。

[self dismissViewControllerAnimated:YES completion:nil];
39
Senthilkumar

-dismissViewControllerAnimated:completion:

メソッドによって提示されたUIViewControllerを閉じるために使用されます。

-presentViewController:animated:completion:

-popViewControllerAnimated:

UINavigationControllerのメソッドは、

-pushViewController:animatedUINavigationControllerのメソッド。

最初のケースでは、ビューコントローラーのビューはモーダルコントローラーとして表示され(通常、下から上へ)、2番目のケースでは、UINavigationControllerのナビゲーションスタックでビューコントローラーをプッシュしています。

38
graver