在iOS Interface Builder中使用StoryBoard支持横向和纵向

时间:2014-07-24 07:10:23

标签: ios storyboard landscape-portrait

我开发了一个应用程序,它支持GPOrientationKit的纵向和横向。我按照以下链接执行应用程序的所有页面以支持两种方向。

http://logisian.blogspot.in/

我用XIB或NIB文件做了那个应用程序。现在,我正在使用故事板开发应用程序。我不知道如何使用故事板支持两种方向的应用程序。 GPOrientationKit适用于XIB文件。但是我正在努力使用storyboard。我需要GPOrientationKit和故事板这样的功能。请帮帮我。

先谢谢。

2 个答案:

答案 0 :(得分:0)

您点击投影>选择目标>一般情况下,您可以设置设备方向。enter image description here

答案 1 :(得分:0)

只需在控制器的mainView中添加两个子视图,例如portraitView和landscape View,并在你的方向发生变化时切换它们。我有类似的东西

在viewWillAppear方法中添加此

-(void)viewDidAppear:(BOOL)animated{

        if(UIDeviceOrientationIsPortrait(self.interfaceOrientation))
    {

//Keep LAndscape View Hidden
    self.portraitVIew.frame=self.view.frame;
    [self.view addSubview:self.portraitVIew];
    }else{


//Keep portrait View Hidden

    self.landscapeView.frame=self.view.frame;
    [self.view addSubview:self.landscapeView];
    }
    self.view.autoresizesSubviews = YES;

     } 
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(deviceOrientationDidChangeNotification:)
     name:UIDeviceOrientationDidChangeNotification
     object:nil];



}

然后实现方法deviceOrientationDidChangeNotification,例如

- (void)deviceOrientationDidChangeNotification:(NSNotification*)note
{


        UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
        if(UIDeviceOrientationIsLandscape(self.interfaceOrientation))
        {
//Keep portrait View Hidden

            NSLog(@"YUP THIS IS LANDSCAPE");
            self.landscapeView.hidden=NO;
            self.landscapeView.frame=self.view.frame;
            [self.portraitVIew removeFromSuperview];
            ///self.landscapeView.frame=CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);


            [self.view addSubview:self.landscapeView];
        }else {
//Keep LAndscape View Hidden

            self.landscapeView.hidden=YES;
            self.portraitVIew.frame=self.view.frame;
            NSLog(@"Portrait");

            [self.view addSubview:self.portraitVIew];
        }
}