You also need to enable rotation to all orientations in each controller of the parent view of the current main view controller. For example, if your view controller is in the navigation controller, try subclassing it and overriding the same methods as in your example.
Edit: As @JordanC mentioned, since iOS 7, you can implement the UINavigationControllerDelegate method to return user supported orientations:
- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController
source share