我正在将我的iPhone应用程序转换为iPad并使用
-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}
始终保持双窗格布局。不幸的是,这是在iOS5中引入的。我已经看到提到以编程方式为iOS 5之前做这个,但没有设法找到任何示例代码。有没有人有任何指示?
答案 0 :(得分:1)
这个区域有点滑,因为Apple已经调整了5.0,5.1中的splitview和6.0中的旋转
不要翻转,但如果你可以将你的应用程序移动到需要5.0,那么这将是实现目标的最简单方法。
如果你想自己做这件事,你基本上需要劫持弹出框并在你自己的框架中重新实现。有一种方法叫做:
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)newpopoverController
在这个方法中,你可以抓住viewController并存储它。
然后使用以下方式感知画像:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
,您需要抓取详细视图并进行调整 - 为左侧的新框架腾出空间,使用您从上一个方法中获取参考的视图控制器填充。
这是一种杂耍行为。如果你确实需要保持4.3兼容性而你想要这个功能,我建议你看一下Matt Gemmell开发的名为MGSplitViewController的开源SplitView控制器 - 你可以在这里找到它:{{3} }。
他的实现非常好,不仅会为您提供该功能,还会提供与屏幕上视图位置相关的其他几个选项。
现在这里是滑坡开始的地方,Matt没有更新代码几年(尽管有一些叉子已经存在),并且可能在您向前移动应用程序时难以维护。 / p>
如果不出意外,它确实包含完全符合您要求的代码,因此它可以帮助您完成项目。
抱歉,我无法提供完整的配方,但实际上,无论您是使用它还是仅将其用作参考,该库都应该有所帮助。 祝你好运