2012-06-18 2 views
28

Я хочу знать, что их отличает. , когда я могу назватьувольнениеПросмотрСообщительAnimated VS popViewControllerAnimated

[self dismissViewControllerAnimated:YES completion:nil]; 

и когда я должен вызвать

[self.navigationController popViewControllerAnimated:YES]; 

в соответствии документ яблока: dismissViewControllerAnimated означает «Отклоняет контроллер представления, который был представлен в приемнике.» Но я всегда не могу отключить контроллер просмотра этим методом.

+0

Что касается увольнения, см. [Это] (https://youtu.be/oTsg-uJfxD4?t=556) видео из Стэнфорда. Функция rejectViewController всегда должна быть отправлена ​​* в представлении * viewController. Если вы отправили его * Представленный * viewController, и представленный контроллер не представил ** ** nother viewController *, то * он отклонил бы его правильно, иначе он не сделал бы это правильно – Honey

ответ

38

выбранное приложение навигационное приложение на основе средств

[self.navigationController popViewControllerAnimated:YES]; 

выбранное приложение является отличным приложение на основе навигационных средств

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

, так это значит: я не должен использовать rejectViewControllerAnimated в навигационное приложение? Я думаю, что это причина, по которой я всегда не могу уклониться от просмотраПросмотра, спасибо! –

36

-dismissViewControllerAnimated: завершение:

Используется для отклоните UIViewController, который был представлен следующим образом:

-presentViewController:animated:completion:.

-popViewControllerAnimated:

Метод UINavigationController используется для поп-контроллера, показанного на

-pushViewController:animated методом UINavigationController.

В первом случае вид диспетчера представлений отображается как модальный контроллер (обычно снизу вверх), а во втором случае вы нажимаете контроллер вида в стеке навигации UINavigationController.

Смежные вопросы