2012-03-09 86 views
2

我有一个问题,UISplitViewController问题与IOS 5.1

我用Monotouch 5.2.8 IOS 5.1编程。

但是,由于IOS 5.1更新我的iPad配置UISplitViewController,因此它停靠在 左侧,而不是显示为弹出窗口。

它适用于IOS 5.0,但在5.1我有这个问题。

这里是我的UISplitViewController的源代码:

splitViewController = new UISplitViewController(); 
splitViewController.WeakDelegate = detailViewController;     
splitViewController.ViewControllers = new UIViewController[] { 
    navigationController, 
    detailViewController     
}; 
+0

在公开讨论iOS 5.1特性时可以吗?由于Xcode和新版本通过App Store分发,它不再那么明显,它可能在NDA之下。尝试下载最新的SDK时,我错过了红色的NDA信息框。 – Krumelur 2012-03-09 20:11:12

回答

5

从苹果的iOS 5.1 SDK发布说明:

在5.1呈现左视图时UISplitViewController类采用滑动呈现 风格(以前只在邮件中看到)。 此演示文稿由代表方法提供的 现有栏按钮项目或右侧视图中的滑动手势启动时使用。获取此行为不需要额外的API采用 ,并且代理提供的所有现有API(包括由代理提供的UIPopoverController实例的 ) 将继续像以前一样工作。如果您的手势在您的 应用中不受支持,请将分割视图 控制器的presentsWithGesture属性设置为NO,以禁用该手势。但是,禁用 手势是不鼓励的,因为它的使用在所有应用程序中都保留了一致的用户体验 。

Here(需要登录)。

UPDATE:

从我上述理解,我们可以亲吻的iOS 5.1主控制器再见的自动酥料饼的外观。

我看到的唯一方法是可以保持“旧”的外观,就是通过实施我们自己的UIPopoverController并利用ShouldHideViewController委托方法。感谢MonoTouch,我们在UISplitViewController课程中拥有该方法,让事情变得更简单。

虽然我确实得到了一个奇怪的行为。在我的Mac上使用iOS SDK 5.1;在iPad上使用iOS 5.1;在设备上,我得到了“滑动”的外观,而在模拟器上,我得到了“旧”的弹出式外观​​。这是MonoTouch 5.2.4,这是最新的稳定版本。此外,它不包含PresentsWithGesture属性。我尝试通过MonoTouch.ObjCRuntime消息将其值设置为false,但没有运气。选择器保持返回true。所以我不能停用滑动手势。

甚至尝试创建我自己的UIPopoverController并将其分配为分离控制器中的主设备以查看发生了什么。不起作用,因为UIPopoverController不是UIViewController ...

关于ObjC的this问题的一些有用信息。

+0

我试图设置属性“presentsWithGesture为false(NO),但没有任何变化。=( – Alex 2012-03-09 11:18:27

+0

@Dimitris Tavlikos:我解释说”presentsWithGesture“财产的意义上说,拆分控制器仍然会显示相同的行为,但如果从或者换句话说:如果你的应用本身已经有一个类似的滑动手势,你会希望将这个属性设置为false。 – Krumelur 2012-03-09 20:07:56

+0

但是为了回答我的问题。我该如何停用这个'新的UISplitViewController'并得到旧的UISplitViewController ??或者这是不可能的? – Alex 2012-03-13 19:15:18

2

原来,您可以在应用程序委托中禁用presentsWithGesture,但一旦呈现视图控制器,就不会更改它。

我需要在登录过程中禁用左视图控制器的外观,但事实证明,我以后无法启用它。

+0

查看daveywc的评论,您可以调用setNeedsLayout并重新指出您的委托以便即时更改此操作:http://stackoverflow.com/questions/10078616/uipopovercontroller-gesture-handling-in-uisplitviewcontroller-for -ios-5-1和待 – 2012-10-30 19:59:57