2017-04-17 45 views
1

这里我是动态添加标签项目,但它只显示4个项目(更多...标签项目丢失)。我经历了很多文章和stackoverflow的帖子,但没有找到任何合适的解决方案。这是到目前为止我的代码...从视图控制器动态加载tabItems时,TabBar没有显示[More ...]图标

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    loadDynamicItems() 
} 

func loadDynamicItems() { 

    let storyBoard = UIStoryboard(name: "Main", bundle: Bundle.main) 
    var controllerArray = [UIViewController]() 

    for i in 1...8 { 
     let controller = storyBoard.instantiateViewController(withIdentifier: "newsCollection") as! NewsVC 
     let tabIcon = UIImage.fontAwesomeIcon(name: .addressBook, 
               textColor: UIColor.black, 
               size: CGSize(width: 30, height: 30)) 

     controller.tabBarItem = UITabBarItem(title: "item \(i)", image: tabIcon, tag: i) 
     controllerArray.append(controller) 
    } 

    self.setViewControllers(controllerArray, animated: true) 
} 

但是结果好像这IMAGE
为什么它仅显示4项!

它应该加载一个[More ...]按钮作为第五个孩子,从那里我可以访问其余的项目。 但为什么它不在那里!?

+0

我认为你必须使用UITabController和NOT的UIViewController。看这个教程:http://geekyviney.blogspot.com.es/2015/02/programmatically-designing.html – Alvaro

+0

为什么你'for'循环,当你只需要5个标签栏项目时循环8个项目? –

+0

哪里调用这个方法? – KKRocks

回答

0

当使用故事板时,为了添加一个TabBarController到你的应用程序中,你需要拖放一个UITabBarViewController而不是一个普通的UIViewController。否则,某些属性不能正确导出(如TabBar - 请参阅我的屏幕截图)。

只要确保你删除了自动创建的TabBar项目!

UITabBarViewController from Storyboard

相关问题