在推送视图控制器上使用当前方向

Posted

技术标签:

【中文标题】在推送视图控制器上使用当前方向【英文标题】:Use current orientation on push view controller 【发布时间】:2013-12-17 09:11:29 【问题描述】:

我有两个视图控制器,foo 仅是纵向的,bar 是纵向+横向的。 当我将bar 推到foo 上时,foo 总是以纵向方向开始。用户需要在推送后倾斜手机以使操作系统检测到新的方向。我更喜欢foo 从加载的那一刻起就处于横向状态,如果手机在被推动的那一刻就处于横向状态。

这如何在 ios6 和 7 上实现?

【问题讨论】:

【参考方案1】:

我会添加此代码

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

    // Adapt the orientation with your need
    return (interfaceOrientation != UIInterfaceOrientationPortrait &&
            interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);


- (BOOL)shouldAutorotate 
    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];

    if (UIInterfaceOrientationIsPortrait(interfaceOrientation))
       return YES;
    else
       return NO;


-(NSUInteger)supportedInterfaceOrientations
    return UIInterfaceOrientationMaskLandscapeLeft;

【讨论】:

你试过了吗? ***.com/questions/14402401/… ***.com/questions/14633213/… - 也试试这个 如果我理解正确,您希望同时支持横向和纵向,但是如果手机处于横向模式,您还希望视图显示为横向吗?如果是这样,您是否尝试设置一些条件?我编辑我的答案 我看到这个问题还是悬而未决,你找到解决办法了吗?

以上是关于在推送视图控制器上使用当前方向的主要内容,如果未能解决你的问题,请参考以下文章

将视图推送到当前根视图下方的堆栈中

推送视图控制器后从情节提要加载视图

如果当前视图控制器被呈现并推送,如何展开到正确的视图控制器?

在 iOS 拆分视图控制器上推送新的视图控制器

在切换到 UITabbarController 中的不同选项卡之前关闭当前选项卡上的推送视图控制器

关闭 ViewController 后,我的视图保持在 iOS7 中以前的视图控制器方向