1

我正在使用带有 4 个 UINavigationControllers 的 UITabBarController 。

在第四个 ViewController 中,我想将其方向限制为仅纵向,我正在使用以下方法,但这些方法对我不起作用,请帮助我。

-(NSUInteger)supportedInterfaceOrientations
{
     return UIInterfaceOrientationMaskPortrait;
}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
     return UIInterfaceOrientationPortrait;
} 
4

4 回答 4

1

现在我正在使用自定义的 UITabBarController 如下...

CustomTabBarController.m

-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}

在 ViewControllerToBePorted.m

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}

-(BOOL)shouldAutorotate{
return NO;

}

谢谢您的回复..

于 2013-10-30T10:56:13.120 回答
0

go to info.plist open it as sourcecode you will see like this

<key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>

remove

<string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
于 2013-10-30T12:17:24.747 回答
0

来自开发者网站

“当视图控制器在根视图控制器上呈现时,系统行为会以两种方式发生变化。首先,在确定是否支持方向时,使用呈现的视图控制器而不是根视图控制器。第二,呈现的视图控制器可以还提供首选方向。如果视图控制器全屏呈现,则以首选方向呈现用户界面。预计用户会看到方向与设备方向不同并旋转设备。首选方向是最通常在必须以新的方向呈现内容时使用。”

于 2013-10-30T10:14:40.667 回答
0

如果父视图允许该方向,则不能限制子视图的方向。

想象一下这个例子,你的标签栏是横向的,你按下限制为纵向的视图,会发生什么?

正如我所说,孩子的方向必须是父母的方向

于 2013-10-30T10:15:01.963 回答