2010-01-21 6 views
82

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

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

Navigation Controller image

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

ответ

187

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

[navigationController popViewControllerAnimated:YES]; 
+12

удивительным, благодаря Стиву и Нильс. Решение, которое я использовал, было \t \t [self.navigationController popViewControllerAnimated: YES]; easy;) – oberbaum

+0

это отлично работает, кроме viewcontrollers, добавленных на uitabbar. любые подсказки ?? – virata

+1

Я добавил '[self.navigationController popViewControllerAnimated: YES];' но ничего не делает, однако есть предупреждение при нажатии этой кнопки, которая работает. –

7

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

popViewControllerAnimated:

, который является противоположностью добавляющих контроллеров зрения с pushViewController:animated:

24

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

[self.navigationController popViewControllerAnimated:YES];

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

6
[self.navigationController popViewControllerAnimates:YES]; 

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

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

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

[[self navigationItem] setBackBarButtonItem: newBackButton]; 

[newBackButton release]; 

, а затем в методе backButtonTapped вы можете call--

[self.navigationController pushViewController:desiredViewController animated:YES]; 
20

Swift 3,0

Назад к просмотру корневой

self.navigationController?.popToRootViewController(animated: true) 

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

self.navigationController?.popViewController(animated: true) 

Swift 2.3

Назад к просмотру корневой

self.navigationController?.popToRootViewControllerAnimated(true) 

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

self.navigationController?.popViewControllerAnimated(true) 
+0

Хороший ответ, я искал его –

+0

Спасибо! Счастливо это помогло .. –

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