2017-08-12 149 views
4

我讀了一堆相關的問題,我嘗試了他們所說的,沒有什麼效果。不知道爲什麼。所以,我有3個不同的UIStoryboards。第一個是處理登錄/註冊的Auth Storyboard,還有第二個Storyboard - Tab bar storyboard的故事板參考。這個故事板包含5個其他故事板參考,可以加載它的獨立視圖控制器。標籤欄不顯示圖標?

我的問題是一旦用戶登錄,圖標就不會顯示。我在UITabViewController中設置了第一個視圖控制器的自定義顏色,以確保它加載。它的確如此。

我試圖設置所有的圖像/圖標來渲染它們爲「原始」,沒有工作。我設置了一個系統映像,看看是不是這個問題,他們沒有顯示。另外值得一提的是,這些圖標顯示在故事板中,但是當它被編譯時,它們無法在模擬器中看到。

我在做什麼錯?

enter image description here

PS:我已經改變了標籤欄的顏色色調,只是爲了測試它,和它的作品。所以,問題不在於...

+0

您是否成功登錄後設置了UITabViewController? – Hitesh

+0

@Hitesh - 一旦用戶成功登錄,就會對'UITabBarController'執行一個segue。它不會崩潰,我看到我的自定義視圖,所以這不是問題。 – Dani

+0

什麼是文件擴展名? – DeyaEldeen

回答

3

我附上圖片說明連接:

  1. 連接的TabBar控制器到你的五個視圖控制器

  2. 對於每個視圖控制器,選擇任何視圖 - 控制器 - >去編輯在Xcode選項在頂部 - >嵌入 - >導航控制器

  3. 選擇導航控制器中的底部欄 - >在實用程序中打開屬性檢查器 - >提供您的標題和圖像爲在圖像

enter image description here

導航從登錄高亮/註冊的TabBar屏幕: 提供故事板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) 
} 
0

連接你的五個視圖控制器與導航控制器,然後將相關的導航控制器接口到標籤欄控制器。

+0

我已經做到了。這5個UIViewControllers中的每一個嵌入到導航控制器中,然後爲每個導航控制器設置參考ID,並將其設置爲來自UITabBarController的故事板參考。 – Dani

+0

您是否爲每個導航控制器設置了選項卡欄項目? –

+0

我做到了。我已經結束了現在重新創建整個事情,似乎沒有任何工作出於某種原因... – Dani

0

Pleasr嘗試創建programatically..code下面

- (void)customizeTabBar{ 
UITabBar *tabBar = tabBarController.tabBar; 
[tabBar setBarTintColor:TABBAR_COLOR]; 

提到}

- (void)customizeBarButtonsItems:(NSArray*)array{ 
[[array objectAtIndex:0] setImage:[[UIImage imageNamed:@"MusicNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:0] setSelectedImage:[[UIImage imageNamed:@"MusicSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

[[array objectAtIndex:1] setImage:[[UIImage imageNamed:@"TrimNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:1] setSelectedImage:[[UIImage imageNamed:@"TrimSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

[[array objectAtIndex:2] setImage:[[UIImage imageNamed:@"RecordNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:2] setSelectedImage:[[UIImage imageNamed:@"RecordSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

}

tabBarController = (UITabBarController *)self.window.rootViewController; 
tabBarController.tabBar.translucent=false; 
[self customizeTabBar]; 
[self customizeBarButtonsItems:tabBarController.tabBar.items]; 
for(UITabBarItem * tabBarItem in tabBarController.tabBar.items){ 
    //tabBarItem.title = @""; 
    tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
}