允许iphone中的方向仅适用于一个视图

时间:2014-06-16 12:35:42

标签: objective-c xcode

我一直在开发一个只需要一个视图定位的应用程序,我需要一种方法来检测appdelegate页面中的当前视图

任何人都可以帮助并告诉我这是如何可能的

此致

NEHA

1 个答案:

答案 0 :(得分:0)

您可以在此处指定应用支持的方向:

Device Orientations

如果您只选择Portrait,那么您基本上会将您的应用锁定为纵向模式

编辑:


如果您希望所有viewController锁定在Portrait模式但允许多个方向指向单个/所选viewController(s),那么您可以快速实现此修复

允许多个方向的 viewController

-(void)viewWillAppear:(BOOL)animated
{
    [[NSUserDefaults standardUserDefaults] setObject:@(YES)
                                              forKey:@"allowLandscape"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

-(void)viewWillDisappear:(BOOL)animated
{
    [[NSUserDefaults standardUserDefaults] setObject:@(NO)
                                              forKey:@"allowLandscape"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //...
    //default setting when app starts
    [[NSUserDefaults standardUserDefaults] setObject:@(NO)
                                              forKey:@"allowLandscape"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    //...
}

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"allowLandscape"] boolValue]) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }

    return UIInterfaceOrientationMaskPortrait;
}