2016-01-27 147 views
0

我有一個帶有3個選項卡的選項卡欄控制器,每個選項卡都嵌入在其自己的導航控制器中。這很好,但現在我試圖把整個標籤欄控制器放在一個分割視圖控制器中。從分割視圖控制器的詳細視圖中調用主視圖控制器

storyboard

的問題是關於拆分視圖控制器上的主視圖的導航隱藏的標籤欄控制器內的視圖的現有的導航。如果我隱藏主視圖導航,我會返回標籤欄控制器導航,但是我無法回到主列表。我可以通過編程方式添加按鈕,但只能在iPad上使用。

navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 
navigationItem.leftItemsSupplementBackButton = true 

我也嘗試玩preferredDisplayMode的各種選項,但是,這隻適用於iPad。它對iPhone沒有影響。我可以通過編程方式將自定義按鈕添加到標籤視圖控制器中的視圖控制器,並從那裏調用一個動作,但我不知道要調用什麼動作。我想呼籲displayModeButtonItem:

splitViewController?.displayModeButtonItem().action 

動作那也不能工作。我希望能夠以編程方式添加分割視圖控制器在iPhone上添加的後退按鈕的行爲。

回答

0

我結束了拆分視圖控制器,並使用另一個選項卡。但是,我在另一個應用程序中遇到了類似的問題,我找到了一種解決方法。我將標籤欄控制器本身嵌入到導航控制器中。這會導致出現多個導航控制器,所以我在viewWillAppear中進行了檢查以隱藏導航控制器導致問題的任何一個。

if let hidden = tabBarController?.navigationController?.navigationBarHidden { 
    if hidden == true { 
     tabBarController?.navigationController?.navigationBarHidden = false 
    } 
} 

此應用具有分裂視圖控制器作爲根視圖控制器然後在主機和詳細視圖選項卡欄控制器。每個視圖都嵌入在導航控制器中,我只是顯示或隱藏導航欄,具體取決於是否有重複。

相關問題