2017-08-12 146 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); 
}