UISplitViewController与IOS 5.1的问题

时间:2012-03-09 07:35:09

标签: xamarin.ios uisplitviewcontroller ios5.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                   
};

2 个答案:

答案 0 :(得分:5)

来自Apple的iOS 5.1 SDK发行说明:

  

在5.1中,UISplitViewController类采用滑动表示   呈现左视图时的样式(以前只在Mail中看到)。   当演示文稿由。启动时使用此样式   由委托方法或通过提供的现有条形按钮项   右视图内的滑动手势。没有额外的API采用   需要获取此行为,以及所有现有API,包括那些   将由委托提供的UIPopoverController实例   继续像以前一样工作。如果您的手势无法支持   app,设置拆分视图的presentsWithGesture属性   控制器为NO以禁用手势。但是,禁用了   不鼓励手势,因为它的使用保留了一致的用户   所有应用程序的经验。

Here(需要登录)。

<强>更新

根据我的理解,我们可以在iOS 5.1中亲吻主控制器再见的自动弹出式外观​​。

我看到的唯一可能是保持“旧”外观的方法是实现我们自己的UIPopoverController并利用ShouldHideViewController委托方法。值得庆幸的是,对于MonoTouch,我们将该方法作为UISplitViewController类中的属性提供,使事情变得更简单。

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

甚至尝试创建我自己的UIPopoverController并将其指定为拆分控制器中的主人,以查看会发生什么。不起作用,因为UIPopoverController不是UIViewController ...

this问题中的一些有用信息,对于ObjC。

答案 1 :(得分:2)

事实证明,您可以禁用应用程序委托中的presentsWithGesture,但是一旦显示了视图控制器,就不会更改它。

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