0

私はUITableViewController1 つのタブに がありUINavigationViewControllerます。UINavigationControllerルート ビュー コントローラーは UITableViewController であり、セルをクリックすると、UIViewControllerロックする必要があるセルが表示されLandscapeます。

Portraitでロックする必要があると述べたものを除いて、すべてのコントローラーを でロックUIViewControllerする必要がありますPortrait

私は次のことを試しました:

CustomTabBarController.m:

#import "CustomTabBarController.h"

@implementation CustomTabBarController

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // You do not need this method if you are not supporting earlier iOS Versions
    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

- (BOOL)shouldAutorotate{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations{
    return [self.selectedViewController supportedInterfaceOrientations];
}

@end

CustomNavigationController.h:

#import "CustomNavigationController.h"

@implementation CustomNavigationController

-(NSUInteger)supportedInterfaceOrientations
{
    return [self.topViewController supportedInterfaceOrientations];
}

-(BOOL)shouldAutorotate
{
    return YES;
}

@end

そして、ランドスケープにロックインする必要がある UIViewController に、次のように入力しました。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

-(BOOL)shouldAutorotate
{
    return YES;
}

しかし、それは機能しません。横向きに回転でき、横向きにロックされたままになりますが、横向きに自動的に表示されるようにしたいです。

助言がありますか?

4

3 に答える 3

0

特定のウィンドウの一部の向きをブロックする方法を試してください。

– application:supportedInterfaceOrientationsForWindow:
于 2014-03-13T10:45:27.287 に答える