для iPhone - программный вызов кнопки навигации "назад" контроллер


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

т. е. автоматически нажмите кнопку задания, как показано ниже:

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

5 82

5 ответов:

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

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