问题
I'm using storyboards in interface builder using the Xcode menu 'Editor...Embed in...Navigation Controller'.
It seems that in iOS 6 you have to subclass the UINavigationController to allow all orientations, with
- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskAll );
}
But how do I subclass the UINavigationController with a storyboard app as there is no reference to it in the code?
回答1:
You can select the navigation controller scene's navigation controller from the storyboard:

And then use the identity inspector on the right to change the class:

For instance change the "Class" there to MyCustomNavigationController
and then just create a new class in your project called MyCustomNavigationController
:
MyCustomNavigationController.h:
#import <UIKit/UIKit.h>
@interface MyCustomNavigationController : UINavigationController
@end
MyCustomNavigationController.m:
@implementation MyCustomNavigationController
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
... any other methods you want ...
@end
来源:https://stackoverflow.com/questions/12951039/how-to-subclass-navigation-controller-when-using-storyboards