我有一个问题,
我正在使用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 :(得分: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
,但是一旦显示了视图控制器,就不会更改它。
我需要在登录过程中禁用左视图控制器的外观,但事实证明我以后无法启用它。