我有个问题,
我正在使用IOS 5.1的Monotouch 5.2.8进行编程。
但自从iOS5.1更新以来,我的iPad配置了UISplitViewController,使其停靠在左侧,而不是以弹出窗口的形式显示。
它适用于iOS5.0,但在5.1版本中我遇到了这个问题。
下面是我的UISplitViewController的源代码:
splitViewController = new UISplitViewController ();
splitViewController.WeakDelegate = detailViewController;
splitViewController.ViewControllers = new UIViewController[] {
navigationController,
detailViewController
};发布于 2012-03-09 16:06:41
来自苹果的iOS 5.1软件开发工具包发行说明:
邮件5.1中的UISplitViewController类在呈现左视图时采用了滑动呈现风格(以前仅在
中可见)。当呈现由委托方法提供的现有栏按钮项或通过右视图中的滑动手势启动时,将使用此样式。不需要采用额外的API来获得此行为,所有现有的API,包括委托提供的UIPopoverController实例的API,将继续像以前一样工作。如果应用程序不支持该手势,请将拆分视图控制器的presentsWithGesture属性设置为NO以禁用该手势。但是,禁用手势是不可取的,因为使用它可以在所有应用程序中保持一致的用户体验。
Here (需要登录)。
更新:
根据我在上面的理解,我们可以和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...
一些有用的信息,在this问题,为ObjC。
发布于 2012-07-24 14:52:04
事实证明,您可以在应用程序委托中禁用presentsWithGesture,但是一旦呈现了视图控制器,就无法对其进行更改。
我需要在登录过程中禁用左侧视图控制器的外观,但后来发现我无法启用它。
https://stackoverflow.com/questions/9630492
复制相似问题