相关疑难解决方法(0)

如何强制或禁用某些但不是所有UIViewController的界面方向?

我有一个9-10屏幕的应用程序.我UINavigationController在我的视图控制器中嵌入了一个.我有几个视图控制器,我想只设置纵向:这意味着旋转设备不应该将这些视图控制器旋转到横向模式.我尝试了以下解决方案:

第一:

   NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
   [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
Run Code Online (Sandbox Code Playgroud)

但屏幕仍然旋转到风景.

第二: 我创建了一个自定义视图控制器类,PortraitViewController并在下面添加了代码PortraitViewController.m

@interface PortraitViewController ()
@end

@implementation PortraitViewController
- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    //Here check class name and then return type of orientation
    return UIInterfaceOrientationMaskPortrait;
}
@end
Run Code Online (Sandbox Code Playgroud)

之后我实现PortraitViewController.h了基类

#import <UIKit/UIKit.h>
#import "PortraitViewController.h"
@interface Login : PortraitViewController
@end
Run Code Online (Sandbox Code Playgroud)

它根本不起作用,仍允许视图控制器以横向模式旋转.

有没有其他解决方案我使用iOS 8并且不希望viewcontroller在横向模式下旋转?

编辑: 是否可以仅为某些视图控制器设置横向方向,并强制其他视图控制器方向粘贴到纵向?

iphone objective-c rotation ipad ios

11
推荐指数
4
解决办法
1万
查看次数

标签 统计

ios ×1

ipad ×1

iphone ×1

objective-c ×1

rotation ×1