Программно вызвать навигационный контроллер кнопки возврата на iOS

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

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

Navigation Controller image

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

Ответ 1

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

[navigationController popViewControllerAnimated:YES];

Ответ 2

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

[self.navigationController popViewControllerAnimated:YES];

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

Ответ 3

Swift 3.0

Возврат к корневому представлению

self.navigationController?.popToRootViewController(animated: true)

Назад к предыдущему виду

self.navigationController?.popViewController(animated: true)

Swift 2.3

Возврат к корневому представлению

self.navigationController?.popToRootViewControllerAnimated(true)

Назад к предыдущему виду

self.navigationController?.popViewControllerAnimated(true)

Ответ 4

Вы должны позвонить

popViewControllerAnimated:

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

Ответ 5

[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];