Objective c 在UISplitViewController中隐藏主视图

Objective c 在UISplitViewController中隐藏主视图,objective-c,ios,cocoa-touch,ipad,uisplitviewcontroller,Objective C,Ios,Cocoa Touch,Ipad,Uisplitviewcontroller,更新 我最终解决了MGSplitViewController的问题,所以我现在使用项目的这个分支:在编写此编辑时,这个分支还没有被拉到Matt Gemmell的主分支中 请注意 我的iPad应用程序仅适用于横向,并且与iOS5和iOS6兼容 我有一个部分有效的解决方案,但我需要更进一步 对于我应用程序中的大多数屏幕,我需要同时显示主视图和详细视图(正常行为) 在某一点上,我只需要详细的VC就可以了 我现在做得怎么样? 我使用以下UISpliterViewControllerDelegate方法

更新

我最终解决了MGSplitViewController的问题,所以我现在使用项目的这个分支:在编写此编辑时,这个分支还没有被拉到Matt Gemmell的主分支中

请注意

  • 我的iPad应用程序仅适用于横向,并且与iOS5和iOS6兼容
  • 我有一个部分有效的解决方案,但我需要更进一步
  • 对于我应用程序中的大多数屏幕,我需要同时显示主视图和详细视图(正常行为)
  • 在某一点上,我只需要详细的VC就可以了
  • 我现在做得怎么样?

    我使用以下UISpliterViewControllerDelegate方法

    - (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
    {
        return self.hideRootViewController;
    }
    
    其中,hideRootViewController是一个布尔值,最初设置为“否”

    部分解决方案

    如果我将布尔值更改为“是”(在我的应用程序的任何屏幕/VC中),并旋转屏幕,masterVC将消失,detailVC将占据整个屏幕

    剩下的问题

    如何在不旋转设备的情况下强制执行此更改,或者如何强制将设备方向通知更改为重画UISplitViewController

    以下尝试已失败:

  • CGA仿射变换(恒等式和小角度变换)
  • 发布UIDeviceOrientationIDChangeNotification
  • 在splitVC.view上调用setNeedsLayout
  • 在splitVC上展示并立即驳回modalVC

  • 注意:我没有使用MGSplitViewController,也不想在这个项目中使用该类

    要手动强制旋转,可以使用:

    [[UIApplication sharedApplication] setStatusBarOrientation:]

    你为什么不使用。我在我的项目中使用了它,它工作得很好,而且很容易实现。您可以轻松隐藏/切换主视图。

    因为它不适用于仅适用于横向的iOS 6项目(至少在我的测试中它看起来是坏的)。我不想改变这样一个项目。我可以检查一些叉子。你说它看起来坏了是什么意思?图形?视图在MG提供的测试项目中没有正确显示。我没有安装iOS 6。我完成安装后会给你回复。我是说在升级我的xcode时发现了这个。一些ppl声称它通过修改小代码来修复(但我没有能力证实这一点)。以下是链接: