2012-08-22 78 views
1

我有一个UISplitViewController它有一个UINavigationController在主和一个UIViewController的细节。当设备定位到横向模式时,我希望保持正常行为。即主人以横向显示并隐藏在肖像中。只有某些视图隐藏主UISplitViewController

但是,取决于用户在主服务器中单击的内容取决于哪个UIViewController加载到UISplitViewController的详细信息部分。我想要的是,当用户点击详细UIViewController中的按钮时,主人将以横向模式隐藏。问题是我无法得到这个工作。

我代表看起来像这样(已删除了简单查看了一些行):

public class SplitControllerDelegate : UISplitViewControllerDelegate { 
        SplitViewController incomingController; 

    private bool hideMaster = false; 

    public override bool ShouldHideViewController (UISplitViewController svc,   
             UIViewController viewController, 
             UIInterfaceOrientation inOrientation) { 
      return hideMaster; 
    } 
    public void SetHideMaster(bool value) { 
      hideMaster = value; 
    } 

} 

我再从细节UIViewController中这样称呼它

splitControllerDelegate.SetHideMaster(value); 

不过没什么变化。我不确定如何让它执行更改?主人应该立即消失吗?什么导致WillHideViewController触发?

感谢

迈克

回答

1

你正在试图做的,不能正式做什么。仅在设备旋转时调用ShouldHideViewController()。所以除非你前后旋转,否则你的控制器不会消失。

你有多种选择:

  • 不要使用UIListViewController但其他一些第三方替代
  • 的iOS5的
  • 使用的UIViewController容纳特征和实现自己的分屏视图
  • 套用劈UISplitViewController

关于最后一点。如果将Delegate属性设置为NULL,然后分配新代理,则应该可以强制调用ShouldHideViewController()。之后,使用当前方向调用分屏视图控制器的WillRotate()方法。

我会去第二个选项。

相关问题