0

我發現這個問題很多變化,但只是想澄清一下,因爲我似乎無法得到我的工作。在子視圖上隱藏標籤欄控制器

我有一個TabBarController(TBC),其中包含幾個UIViewController(每個選項卡)。在這些UIViewController S(MAINMENU)中的一個,我想再添UIViewController(的Game1)作爲一個子視圖:

[self.view addSubview:game1.view]; 

現在,這個問題是,它需要在TBC有了它,所以我試圖隱藏它使用:

self.hidesBottomBarWhenPushed = YES; //< (In the game1.m ViewDidLoad method) 

game1.hidesBottomBarWhenPushed = YES; //< (In the mainMenu.m after I initialise game1) 

我猜測,這是由於菜單我使用addSubview方法從未被推?

本來我是用presentModalViewController的方法,但是該幀被傳遞到新的視圖,從而導致UI佈局,以抵消/縮放英寸

誰能幫助我解決這個問題,我不能似乎隱藏了TBC並且正在用盡想法。

在先進的感謝,埃利奧特

回答

0

hidesBottomBarWhenPushed當你推視圖控制器到UINavigationController棧纔有意義。你在做什麼addSubview:是你只是將game1的視圖添加到當前視圖控制器的視圖中。這完全不對,UIKit根本無法處理。

你應該把一個UINavigationController爲您的標籤視圖控制器,然後用類似推game1視圖控制器:

[self.navigationController pushViewController:game1 animated:YES]; 

,而不是addSubview:。然後這將與hidesBottomBarWhenPushed。但請注意,最好將hidesBottomBarWhenPushed設置爲您的init方法中的任何類game1,而不是viewDidLoad

+0

因此,而不是有許多UIViewControllers的選項卡項目(mainMenu等),這些應該是NavigationControllers? –

+0

如果你想推動其他視圖控制器,那麼是的,這將是通常的方式去做事情。如果需要,您可以將實際導航欄隱藏在「主屏幕」上,然後在您推送視圖控制器時將其顯示出來。這可能是你正在尋找的那種東西。 – mattjgalloway

+0

對不起,回覆遲緩,週末搬家!好的,謝謝你的幫助,我會更新我的代碼並嘗試以這種格式來構造它,以查看我是否能夠獲得理想的效果。我真正想要的就是能夠在沒有TabBar的情況下顯示視圖,因爲當顯示遊戲屏幕時,我不再希望用戶能夠瀏覽菜單。這個問題實際上是因爲當我將一個非選項卡欄視圖拖到一個選項卡欄上時,由於屏幕尺寸的變化,顯示的筆尖佈局偏離了中心。 –

相關問題