Xamarin.ios 仅对某些视图隐藏主UISplitViewController

Xamarin.ios 仅对某些视图隐藏主UISplitViewController,xamarin.ios,uisplitviewcontroller,uisplitviewdelegate,Xamarin.ios,Uisplitviewcontroller,Uisplitviewdelegate,我有一个UISplitViewController,它在主控中有一个UINavigationController,在细节中有一个UIViewController。当设备定位为横向模式时,我希望保持正常的行为。也就是说,主人被显示在风景中,隐藏在肖像中 但是,取决于用户在主控中单击的内容,取决于哪个UIViewController加载到UISplitViewController的详细信息部分。我想要的是,当用户单击DetailUIViewController中的按钮时,主控形状在横向模式下隐藏。问

我有一个UISplitViewController,它在主控中有一个UINavigationController,在细节中有一个UIViewController。当设备定位为横向模式时,我希望保持正常的行为。也就是说,主人被显示在风景中,隐藏在肖像中

但是,取决于用户在主控中单击的内容,取决于哪个UIViewController加载到UISplitViewController的详细信息部分。我想要的是,当用户单击DetailUIViewController中的按钮时,主控形状在横向模式下隐藏。问题是我不能让它工作

我的代理如下所示(为了便于查看,删除了一些行):

然后我从细节UIViewController调用它,如下所示

   splitControllerDelegate.SetHideMaster(value);
然而,一切都没有改变。我不确定如何让它执行更改?主人应该立即消失吗?是什么导致WillHideViewController启动

谢谢


迈克

你想做的事不能正式完成<代码>ShouldHideViewController()仅在设备旋转时调用。所以除非你前后旋转,否则你的控制器不会消失

您有多种选择:

  • 不要使用
    UIListViewController
    ,而是使用其他第三方替代品
  • 使用iOS5的UIViewController包含功能并实现您自己的分割视图
  • UISplitViewController
关于最后一点。如果将
Delegate
属性设置为
NULL
,然后分配新的委托,则应该能够强制调用
shoulldhideviewcontroller()
。然后,使用当前方向调用拆分视图控制器的
WillRotate()
方法


我选择第二个选项。

按照设计,您无法使用标准的UISplitView,请尝试使用第三方控件:


是否可以安装这些组件以与Xamarin一起使用??
   splitControllerDelegate.SetHideMaster(value);