2013-03-29 103 views
0

所以我有一個自定義的底部選項卡欄,如果我將它作爲子視圖添加到我的任何視圖中,但我都會喜歡它作爲UINavigationController的一部分我不需要在每個視圖初始化中都跟蹤它。有沒有辦法做到這一點?如何使用子視圖自定義UINavigationController自定義底部選項卡欄

我不能將它作爲navigationBar的子視圖添加,因爲我認爲它已超出框架,並且觸摸不會在標籤欄上註冊。

我不能繼承navigationController,因爲蘋果不讓你。那麼我如何才能做到這一點?

+0

因爲這裏把你的代碼放在這裏來檢查它。 –

回答

1

這不是真的,蘋果不會讓你的子類UINavigationController。從iOS 6開始,這是允許的,但是,我不認爲這對你有幫助。我認爲最好的方法是使用自定義容器控制器。如果您在IB中使用UIViewController,您可以將自定義選項卡欄放在底部(或者只留下空間並將其添加到代碼中),然後添加一個容器視圖,以填充其餘的空間。您可以刪除使用該容器視圖獲得的默認控制器,並將其替換爲導航控制器。當你瀏覽你的內容控制器時,你的標籤欄將保持不變。

+0

這聽起來像是一個很好的解決方案。我仍然不確定如何從導航控制器上的任何視圖訪問標籤視圖控制器,因爲它不會像導航控制器一樣傳遞。 –

+0

@EvanLayman,你是什麼意思的標籤視圖控制器?你的意思是容器控制器在其視圖中有標籤欄嗎?您可以通過self.navigationController.parentViewController – rdelmar

+0

從任何導航控制器的內容控制器訪問父控制器。當然,謝謝。我會盡快嘗試,並將其標記爲正確的答案,當我得到它的工作。 –

相關問題