When using pushViewController
to push UIImagePickerController
:
[self.navigationController pushViewController:pvc animated:YES];
an error will occur such as:
Pushing a navigation controller is not supported
The right solution is to use presentModalViewController
:
[self presentModalViewController:pvc animated:YES];
Can someone explain why this is necessary? What‘s hidden in UIViewController
?
Thanks!
What is a navigation stack? “A navigation controller object manages its child view controllers using an ordered array, known as the navigation stack. The first view controller in the array is the root view controller and represents the bottom of the stack.
To dismiss a modally presented view controller, call the view controller's dismiss(animated:completion:) method.
Apple does not allow stacking of navigation bars. Since the image picker has its own navigation bar, it cannot be placed in a navigation stack. The result would cause user confusion since there would be two bars, two sets of navigation items, two titles, etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With