相关疑难解决方法(0)

Objective-C中iOS 6上的强制横向方向

我有一个UINavigationController内的主视图控制器.在那个主视图控制器中,我有一个按钮,用于推送一个内部有UIWebView的详细视图控制器.我希望这个细节视图控制器在加载时处于横向模式.回到主视图控制器,它再次强制返回到纵向模式.我正在运行iOS 6.

我已经看到了其他类似的问题,但它并不适合我.我创建了一个LandscapeViewController,它是UIViewController的子类,我在这里编写了这些方法:

#pragma mark - Orientation Methods
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotate
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

当我按下详细视图控制器时,这是我的代码:

DetailViewController *detailVC = [[DetailViewController alloc]
                                      initWithNibName:@"DetailViewController"
                                      bundle:nil];

    [self.navigationController pushViewController:detailVC
                                         animated:YES];
Run Code Online (Sandbox Code Playgroud)

我正在考虑在上面的代码中将我的LandscapeViewController子类化到哪里以使其工作或如何正确地子类化并推送我的详细视图控制器.如果导航控制器无法将我的细节视图控制器从纵向推送到横向,我也可以模态显示我的详细视图控制器.我在哪里做错了?

xcode landscape objective-c uinavigationcontroller

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

尝试使用firstInterfaceOrientationForPresentation来触发viewController更改

我在MSNavigationPaneViewController 这里使用并且轮换工作.我已经覆盖了我的根中的旋转方法UINavigationController

-(BOOL)shouldAutorotate
{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    if (appDelegate.topViewController != nil) {
        return [appDelegate.topViewController supportedInterfaceOrientations];
    } else {
        return UIInterfaceOrientationMaskPortrait;
    }
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    if (appDelegate.topViewController != nil) {
        return [appDelegate.topViewController preferredInterfaceOrientationForPresentation];
    } else {
        return UIInterfaceOrientationPortrait;
    }
}
Run Code Online (Sandbox Code Playgroud)

我推动MSNavigationPaneViewController使用presentViewController: animated:completion:,我有旋转工作,所以某些视图可以有不同的方向.问题是,每个具有不同方向的视图都需要用户倾斜手机以更改其锁定在正确方向上的方向.我已经完成了大量的阅读以使其工作,似乎我需要preferredInterfaceOrientationForPresentation在每个视图加载之前触发,但它不会触发.我认为它没有触发,因为MSNavigationPaneViewController它没有改变使用的视图控制器presentViewController.这是用于MSNavigationPaneViewController更改视图的代码

- (void)setPaneViewController:(UIViewController *)paneViewController
{
    if (_paneViewController == …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c uiinterfaceorientation ios

7
推荐指数
2
解决办法
6539
查看次数