Я следую this Ответ на «выпуск» моего предыдущего контроллера представления в UINavigationController.Pop UIViewController с использованием пользовательского Segue?
Он отлично работает, но поппинговая часть - это код, с которым мне сложно работать. В основном мое приложение работает так. Он начинается в главном меню (вид 1), затем он подталкивает View 2, и я использую пользовательский push segue, чтобы перейти к View 3. Теперь я хочу использовать другой пользовательский segue для popping now to go from View 3 to View 2. Однако, используя приведенный ниже код, он быстро появляется в View 1, а затем, в конце концов, выталкивает View 2. Похоже, что переход контроллера просмотра неестественен, и я просто ищу, чтобы добиться обычного перехода поп-музыки, вместо этого, используя пользовательский segue «освободить» контроллер представления источника.
Это мой код, я сейчас, используя к чему не привели:
- (void)perform {
// Grab Variables for readability
UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];
UINavigationController *navigationController = sourceViewController.navigationController;
// Get a changeable copy of the stack
NSMutableArray *controllerStack = [NSMutableArray arrayWithArray:navigationController.viewControllers];
// Replace the source controller with the destination controller, wherever the source may be
[controllerStack addObject:destinationController];
// Assign the updated stack with animation
[navigationController setViewControllers:controllerStack animated:YES];
}
Есть ли что-то я делаю неправильно здесь?
Попробуйте [navigationController pushViewController: destinationController animated: YES]; –
@NiravDoctorwala Да, однако это не решает проблему. И еще одна проблема заключается в том, что я специально ищу «поп-анимацию», а не «толчок». –
http://stackoverflow.com/questions/10281545/removing-viewcontrollers-from-navigation-stack –