Программно вызвать навигационный контроллер кнопки возврата на iOS - PullRequest
84 голосов
/ 21 января 2010

В приложении для iPhone на основе UINavigationController, я хотел бы выполнить программный эквивалент нажатия кнопки «Назад» и возврата к просмотру.

т.е. автоматически нажмите кнопку «Работа», как показано здесь:

Navigation Controller image

Могу ли я сделать общий вызов iOS или требуется дополнительная информация?

Ответы [ 5 ]

188 голосов
/ 21 января 2010

UINavigationController s -popViewControllerAnimated: метод должен делать то, что вы хотите:

[navigationController popViewControllerAnimated:YES];
24 голосов
/ 21 января 2010

Если вы на самом деле не хотите нажимать кнопку программно, а просто скопировать результат нажатия кнопки, вы должны указать навигационному контроллеру выдать текущий контроллер вида.

[self.navigationController popViewControllerAnimated:YES];

Это удалит его из стека и вернет вас к предыдущему контроллеру представления.

21 голосов
/ 26 декабря 2015

Swift 3.0

Вернуться к корневому виду

self.navigationController?.popToRootViewController(animated: true)

Вернуться к предыдущему виду

self.navigationController?.popViewController(animated: true)

Swift 2,3

Вернуться к корневому виду

self.navigationController?.popToRootViewControllerAnimated(true)

Вернуться к предыдущему виду

self.navigationController?.popViewControllerAnimated(true)
7 голосов
/ 21 января 2010

Вам следует позвонить

popViewControllerAnimated:

, что противоположно добавлению контроллеров представления с pushViewController:animated:

6 голосов
/ 14 декабря 2011
[self.navigationController popViewControllerAnimates:YES];

- лучший вариант, но если вы не используете один и тот же класс контроллера представления или ваш делегат изменяется до вызова метода кнопки назад, вы также можете попробовать -

сначала нужно определить кнопку возврата ---

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];

[[self navigationItem] setBackBarButtonItem: newBackButton];

[newBackButton release];

и затем в методе backButtonTapped вы можете вызвать -

[self.navigationController pushViewController:desiredViewController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...