2012-08-22 112 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()方法。

我會去第二個選項。

相關問題