与导航控制器一起使用时,UITabBarItem 的标题不显示

phu*_*zzz 4 uitabbarcontroller uitabbaritem ios swift

我的非常简单的应用程序遇到了麻烦。

我的应用程序只有两个主要内容,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()
Run Code Online (Sandbox Code Playgroud)

当我运行这个简单的应用程序时,选项卡栏项目不显示任何内容:(

但是当我UITabBarItem像这样改变系统的样式时

let newsVCTabBarItem = UITabBarItem(tabBarSystemItem: .featured, tag: 1)
Run Code Online (Sandbox Code Playgroud)

它工作得很好!太难理解了!

那么有谁知道为什么我的仅标题选项卡栏项目不起作用?我是不是错过了什么重要的事情?

提前致谢!

Sat*_*esh 5

向 s添加title属性ViewController以在 中显示标题UITabBarItem

\n\n
var title: String? { get set }\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

将标题设置为描述视图的人类可读字符串。如果视图控制器具有有效的导航项或选项卡栏项,则为此属性分配值会更新这些对象的标题文本。

\n
\n\n
let newsVC = ViewController()\nnewsVC.title = "News"\n\n.....\n\nlet categoryVC = ViewController2()\ncategoryVC.title = "Category"\n\n.....\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n

将图像分配给 来UITabBarItem查看结果。

\n\n
let newsVCTabBarItem = UITabBarItem(title: "News", image: UIImage(named: "news.png"), tag: 1)\n\n....\n\nlet categoryVCTabBarItem = UITabBarItem(title: "Category", image: UIImage(named: "category.png"), tag: 2)\n\n.....\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新:

\n\n
\n

选项卡栏项目通过其相应的视图控制器进行配置。要将选项卡栏项与视图控制器关联,请创建 UITabBarItem 类的新实例,为视图控制器适当配置它,然后将其分配给视图控制器 xe2x80x99s tabBarItem 属性。如果您没有为视图控制器提供自定义选项卡栏项目,视图控制器将创建一个默认项目,其中不包含图像,而包含视图控制器 xe2x80x99 的 title 属性中的文本。

\n
\n