我的简单应用程序遇到了麻烦。
我的应用程序仅具有两个主干UIViewControllers
,分别称为新闻和类别,每个主叫都有自己的UINavigationController
。
所以在AppDelegate.swift
中,我这样做是
window = UIWindow(frame: UIScreen.main.bounds)
let tabBarController = UITabBarController()
let newsVC = NewsVC()
// CREATE TAB BAR ITEM WITH TITLE ONLY
let newsVCTabBarItem = UITabBarItem(title: "News", image: nil, tag: 1)
newsVC.tabBarItem = newsVCTabBarItem
let categoryVC = CategoryVC()
// CREATE TAB BAR ITEM WITH TITLE ONLY
let categoryVCTabBarItem = UITabBarItem(title: "Category", image: nil, tag: 2)
categoryVC.tabBarItem = categoryVCTabBarItem
let rootViewControllers = [newsVC, categoryVC]
// CREATE NAVIGATION CONTROLLER FOR EACH OF THEM
tabBarController.viewControllers = rootViewControllers.map {
UINavigationController(rootViewController: $0)
}
window?.rootViewController = tabBarController
window?.makeKeyAndVisible()
当我运行此简单应用程序时,选项卡栏项不会显示任何内容:(
但是当我将UITabBarItem
更改为这样的系统样式
let newsVCTabBarItem = UITabBarItem(tabBarSystemItem: .featured, tag: 1)
运行良好!很难理解!
那么有人知道为什么我的仅标题选项卡栏项不起作用吗?我错过了重要的事情吗?
提前谢谢!
答案 0 :(得分:1)
将title
属性添加到ViewController
中以在UITabBarItem
中显示标题。
var title: String? { get set }
将标题设置为描述视图的易于理解的字符串。 如果 视图控制器具有有效的导航项或标签栏项, 为该属性分配值将更新这些属性的标题文本 对象。
let newsVC = ViewController()
newsVC.title = "News"
.....
let categoryVC = ViewController2()
categoryVC.title = "Category"
.....
或
将图像分配给UITabBarItem
以查看结果。
let newsVCTabBarItem = UITabBarItem(title: "News", image: UIImage(named: "news.png"), tag: 1)
....
let categoryVCTabBarItem = UITabBarItem(title: "Category", image: UIImage(named: "category.png"), tag: 2)
.....
更新:
标签栏项目通过其相应的视图进行配置 控制器。要将标签栏项与视图控制器相关联,请创建 UITabBarItem类的新实例,对其进行适当配置 用于视图控制器,并将其分配给视图控制器的 tabBarItem属性。 如果您没有为以下项提供自定义标签栏项 您的视图控制器,视图控制器将创建一个默认项 不包含图像和视图控制器标题中的文本 属性。