2010-04-13 49 views

回答

10

不幸的是,这是一个没有记录的方法(即私人API)。

[splitViewController setHidesMasterViewInPortrait:NO]; 

我想你需要创建一个包含表视图(如主控制器)的自定义视图控制器和其他通用的子视图(如详细控制器)来模拟这一点。

+0

无证或私有​​API?这是与苹果打交道时的一个重要问题;-) – 2010-04-13 18:03:09

+1

@paull:未记录==私人。 – kennytm 2010-04-13 18:22:52

+3

虽然,请记住:有时苹果“无证”选项是因为他们想成为唯一使用该效果的人。在那种情况下,他们多次抛弃只是模拟私人API变化的应用。在“更多”标签栏控制器的“编辑”功能“过于接近外观和感觉”时,我遇到过这种情况。他们限制你可以安排到16的图标。我试图实现看起来像它的东西...他们拒绝了我说,如果我的功能与他们的功能接近但不一样(即:我的功能更多,允许超过16个),可能会让用户感到困惑。 – Jann 2010-04-14 17:37:52

4

有人在我们的博客上问我同样的问题,我找到了解决方案。你可以在我的博客文章末尾找到它Your first split view controller | Seaside

通常,您只需要创建UISplitViewController的子类并覆盖方法willAnimateRotationToInterfaceOrientation: duration:,并在界面方向将更改为纵向模式时调整主视图和详细视图。

干杯, 安德烈亚斯

+0

嗨安卡,我已经看到你的例子源代码多个详细视图,但你没有在根视图中实现didselect方法...你可以给我一个样本也是.. – 2010-09-24 18:36:36

+0

嗨,我添加了一些示例代码项目MasterDetail。在http://github.com/anka/bw_examples/tree/master//MasterDetail/检出git存储库。干杯,安德烈亚斯 – anka 2010-10-04 10:43:14

+0

似乎很有希望,好主意BTW。 – bentford 2011-01-25 13:53:30

8

得到你想要的可能是只没有使用UISplitView效果的最简单方法。相反,只需创建一个普通视图,在左侧放置一个表格视图,在右侧放置您的详细视图,然后适当设置自动大小的东西,以便在纵向和横向上都看起来正确。

11

你一定要看看Matt Gemmell的MGSplitViewController

MGSplitViewController是一个开放 源替代 UISplitViewController,与各种 有用的增强。

49

这是你需要的魔力:

这种方法在UISplitViewControllerDelegate,iOS上提供5.0

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); 
{ 
    return NO; 
} 
+9

这在iOS 8中已弃用。对于iOS 8或更高版本,将“preferredDisplayMode”属性设置为“UISplitViewControllerDisplayModeAllVisible”。 – LightningStryk 2014-12-30 20:59:15

5

由于shouldHideViewController在iOS8上弃用,你将需要使用它代替(斯威夫特):

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
4

正如ccwasden所述,shouldHideViewController已从iOS8开始弃用。在Objective-C,使用...

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 
1

在斯威夫特:

splitViewController.preferredDisplayMode = .AllVisible

相关问题