2013-07-30 41 views
0

所以我創建爲iPhone遊戲,我想在任何時候都加載一個透明的視圖控制器,即上層建築去我所有的其他視圖控制器。這個透明的視圖控制器會在每個視圖的頂部顯示諸如遊戲時間,當前金錢等內容。我想這樣做,以便時鐘計時器的所有代碼可以保存在一個文件中,不需要複製/粘貼到我的所有不同的OtherViewController.m文件中。我已經研究了一段時間了,但我似乎無法弄清楚如何沒有擋住了背後的一個創建這個視圖控制器,或者沒有它被阻塞時,我轉移到一個新的觀點。歡迎任何有關如何做到這一點以及可能的替代解決方案的建議。謝謝!如何將透明視圖控制器加載到所有其他視圖控制器的頂端?

回答

0

你應該使用自定義容器控制器爲此視圖的基類視圖控制器實驗開始。該控制器在頂部具有透明視圖,而內容視圖控制器將顯示在該透明視圖下方。你可以在IB中用容器視圖來做到這一點。從一個普通的UIViewController開始,並在頂部添加一個透明的UIView,並使用你想要的任何子視圖。然後,添加一個容器視圖,並使其成爲整個屏幕的大小。在左邊的場景列表中,您必須將容器視圖向上移動,這是主視圖子視圖列表中的第一個視圖(這會將透明視圖置於頂部)。您可以將容器視圖中包含的包含控制器嵌入到導航控制器中(關閉導航欄),然後從其中添加其他控制器。

enter image description here

enter image description here

我的彩色圖像中的透明視窗的藍色,所以你可以看到它 - 容器視圖了它的下方延伸到狀態欄。在您導航到不同的控制器時,它們將滑入透明視圖下方,該視圖將保持靜止。

+0

這似乎對我來說,最好的解決辦法。我試過了,我認爲這會起作用!非常感謝您的詳細解答! – user2635963

0

您可以添加視圖控制器的根視圖控制器的一個孩子,加上其觀點,作爲一個子視圖。你需要做一些篡改hitTest,以確保接觸傳遞到兄弟姐妹的意見。

0

您可能能夠使用繼承來構建所使用的所有其他控制器父視圖控制器 - 如果你這樣做,也許你並不需要覆蓋整個可見區域的透視圖,但你可以添加項目如時間/分/所需HUD - 和移動它們,這取決於查看你在身邊要使用兩個完全人爲的例子,在遊戲中的飛行部分,你可能想在屏幕僅覆蓋天空上的所有信息。 ,但如果您在鴨子拍攝的遊戲部分,信息應該顯示在屏幕的底部,這樣您就不會隱藏鴨子。

我會通過與吸入viewDidLoad:

相關問題