2012-06-18 19 views
0

我通過具有隱藏默認欄的自定義實現(簡單按鈕和標籤)的故事板創建了選項卡控制器。這一切都按預期工作,並可以瀏覽各種視圖。然而,在我的幾個視圖中,我需要使用UIScrollView,但希望將標籤欄控件移動到滾動視圖的底部,您必須滾動到底部才能訪問它們。我將如何實現這樣的配置?我正在使用XCode 4.3,ARC和Storyboards。UIScrollView中的UITabController

回答

1

你將不得不創建你自己的包含標籤的UIView的實現,並把它放在你的UIScrollView的底部。

UITabBarController必須是您的窗口的根。換句話說,UITabBarController中的UIViewController可以包含一個UIScrollView,但是你不能把UITabBarController放在另一個UIViewController(或UIScrollView內)中。

UITabBarController Class Reference

當部署一個標籤欄的界面,您必須安裝此視圖作爲 根你的窗口。與其他視圖控制器不同,一個標籤欄 絕不應該被安裝爲另一個視圖控制器的子視圖。

+0

我接受了這個答案,因爲@CondradShultz說這是正確的技術答案。 – Matt

+0

+1 n尼斯的說明:) – mAc

4

@MichaelFrederick給了你正確的技術回答你的問題。我現在要給你一些更高的水平設計反饋。

請不要這樣做。

你所描述的聽起來令人難以置信的混亂。 UITabBar的一個目的是向用戶提供他們所處的「模式」的上下文。通過隱藏它,您拒絕用戶這種上下文信息。

這也意味着,如果用戶想要快速切換模式(標籤),您可以強制它們滾動。

如果您絕對需要滾動視圖(例如,大圖像)的最大屏幕空間,請考慮使用模式視圖控制器。這給你你想要的,但沒有任何混亂的子類,自定義選項卡(總是不會表現得很對)或可用性問題。

+0

感謝您的意見。我會推回要求這種佈局的客戶端,因爲我同意讓用戶滾動導航是一個壞主意。如果他們堅持全屏顯示,更改導航方案將是更好的選擇。 – Matt

0

我絕對同意康拉德和邁克爾在所有事情中都是正確的,除非我不認爲你需要創建自己的自定義標籤欄。您應該能夠直接使用UITabBar而不使用UITabBarController

除了閱讀文檔,我不會再給你任何提示,因爲康拉德是絕對正確的。 這是非常糟糕的設計。