[英]Tab bar not showing icons?
我讀了一堆相關的問題,我嘗試了他們所說的,但沒有任何效果。 不知道為什么。 所以,我有 3 個不同UIStoryboards
。 第一個是處理登錄/注冊的 Auth Storyboard,還有一個 storyboard 引用第二個 Storyboard - 選項卡欄 storyboard。這個 storyboard 包含 5 個其他 storyboard 的引用,它將加載單獨的視圖控制器。
我的問題是,一旦用戶登錄,圖標就不會顯示。我在 UITabViewController 中設置了第一個視圖UITabViewController
的自定義顏色,以確保它加載。 確實如此。
我試圖將所有圖像/圖標設置為將它們呈現為“原始”,但沒有用。 我設置了一個系統圖像,只是為了看看是否是這個問題,它們沒有顯示。 另外值得一提的是,圖標顯示在 storyboard 中,但在編譯時,它們在模擬器中無處可見。
我究竟做錯了什么?
PS:我已經更改了標簽欄的色調,只是為了測試它,它可以工作。 所以,問題不在於那個......
如果您將 Storyboard References 附加到您的 Tab Bar Controller,您會注意到 Storyboard References 上實際上有一個UITabBarItem :
不要為這個“假”UITabBarItem 設置屬性!
當您運行該應用程序時,您的設置將什么也不做。 您提供的值僅影響您在 Interface Builder 中看到的內容,而不會影響您運行時的應用程序。
您需要做的是轉到您的故事板參考所指向的 ACTUAL 視圖控制器。 該視圖控制器上還將有一個 UITabBarItem。 這是“真正的”UITabBarItem。 在那里設置您的屬性(圖標、標題等),您將在運行應用程序時看到它們顯示。
我附上了描述連接的圖像:
將 TabBar 控制器連接到你的五個視圖控制器
對於每個視圖控制器,選擇任何視圖控制器 -> 在頂部的 Xcode 選項中轉到編輯器 -> 嵌入 -> 導航控制器
- 在 Navigation Controller 中選擇底部欄 -> 在 Utilities 中打開 Attribute Inspector -> 提供在圖像中突出顯示的標題和圖像
從登錄/注冊導航到 TabBar 屏幕:將 Storyboard ID 提供給 TabBarController 例如。 “TabBarController”並使用相應 Storyboard 的 Storyboard ID 創建 TabBarController 實例。
斯威夫特 3
func navigateToTabBar() {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "TabBarController") as UIViewController
self.present(nextViewController, animated:true, completion:nil)
}
我有同樣的問題。 我的錯誤是我確實在“Tab Bar Item”中設置了Selected Image
,但我沒有設置Image
屬性。
因此,標簽欄圖標顯示在子視圖 [故事板] 中,但沒有顯示在父視圖中(即 TabBarController)。
如果您以編程方式制作導航控制器,由於 viewDidLoad 調用太晚,您將看到相同的症狀。 在您的子視圖控制器中覆蓋 init 將使您的圖標正確顯示。
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.tabBarItem = UITabBarItem(title: "Settings", image: UIImage(named: "gear"), tag: 1)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
快樂編碼!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.