Why can’t UIImagePickerController be pushed into navigation stack?

Forrest picture Forrest · Jan 22, 2011 · Viewed 8.1k times · Source

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!

Answer

taintedzodiac picture taintedzodiac · Jan 28, 2011

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.