В приложении для iPhone на основе UINavigationController в методе я хотел бы выполнить программный эквивалент нажатия кнопки «Назад» и возврата к просмотру.
т.е. автоматически нажмите кнопку «Работа», как показано здесь:
Могу ли я сделать общий вызов iOS или требуется дополнительная информация?
ios
objective-c
button
uinavigationcontroller
Обербаум
источник
источник
[self.navigationController popViewControllerAnimated:YES];
но он ничего не делает, однако есть предупреждение о нажатии этой кнопки, которая работает.Предполагая, что вы на самом деле не хотите нажимать кнопку программно, а просто копируете результат нажатия кнопки, вы должны указать контроллеру навигации, чтобы он вытолкнул текущий контроллер представления.
[self.navigationController popViewControllerAnimated:YES];
Это удалит его из стека и вернет вас к предыдущему контроллеру представления.
источник
Swift 3.0
self.navigationController?.popToRootViewController(animated: true)
self.navigationController?.popViewController(animated: true)
Swift 2.3
self.navigationController?.popToRootViewControllerAnimated(true)
self.navigationController?.popViewControllerAnimated(true)
источник
Вам следует позвонить
popViewControllerAnimated:
что противоположно добавлению контроллеров представления с
pushViewController:animated:
источник
[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];
источник