我在appDelegate类中编写了这部分代码来控制应用程序的方向。
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
NSUInteger orientations = UIInterfaceOrientationMaskAll;
if (self.window.rootViewController) {
UIViewController* presented = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presented supportedInterfaceOrientations];
}
return orientations;
}
我使用此代码以纵向锁定我的方向。
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
这适用于由NavigationViewController推送的所有ViewController,但不适用于由modal呈现的ViewController(我的模态视图似乎不会覆盖此代码)。
当ViewController由modal呈现时,代码示例不起作用。我的ViewController(模态视图)仍处于纵向方向。
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}