iOS 14.2,UIKit 编程标题未显示

Posted

技术标签:

【中文标题】iOS 14.2,UIKit 编程标题未显示【英文标题】:iOS 14.2, UIKit programatically title is not showing up 【发布时间】:2021-02-25 07:52:29 【问题描述】:

我正在以编程方式制作应用程序。我有一个带有三个选项卡的 TabBarController。每个选项卡代表一个 viewController。在此视图控制器中,如果我正在设置标题,但标题未显示。屏幕截图:

TabbarController 代码:

class TabbarController: UITabBarController 

    override func viewDidLoad() 
        super.viewDidLoad()
        
        let vc1 = ViewController()
        let vc2 = SearchViewController()
        let vc3 = LibraryViewController()
        
        vc1.title = "Home"
        vc2.title = "Search"
        vc3.title = "Library"
        
        vc1.navigationItem.largeTitleDisplayMode = .always
        vc2.navigationItem.largeTitleDisplayMode = .always
        vc3.navigationItem.largeTitleDisplayMode = .always
        
        let nav1 = UINavigationController(rootViewController: vc1)
        let nav2 = UINavigationController(rootViewController: vc2)
        let nav3 = UINavigationController(rootViewController: vc3)
        
        nav1.navigationBar.prefersLargeTitles = true
        nav2.navigationBar.prefersLargeTitles = true
        nav3.navigationBar.prefersLargeTitles = true
        
        
        setViewControllers([vc1,vc2,vc3], animated: true)
    


ViewController 代码:

import UIKit

class ViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
        view.backgroundColor = .systemBackground
    

    override func viewWillAppear(_ animated: Bool) 
        super.viewWillAppear(animated)

        self.title = "Home" // This title is not showing up

    

【问题讨论】:

试试这个self.navigationItem.title = "Home" 不行,试过了。 确保你的控制器有导航栏并且字体颜色与背景颜色相反。 请问如何确保我的控制器有导航栏? 改行setViewControllers([nav1,nav2,nav3], animated: true) 【参考方案1】:

问题出在TabbarController 类文件中。 您已设置视图控制器而不是包装的 UINavigationController。

所以,使用这条线

setViewControllers([nav1,nav2,nav3], animated: true)

而不是setViewControllers([vc1,vc2,vc3], animated: true)

【讨论】:

以上是关于iOS 14.2,UIKit 编程标题未显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS App-LaunchScreen.storyboard 在 ios 14.2 上显示为白色

在iOS中显示文本内容 <- iOS文本编程指南

iOS14.2 SwiftUI PageTabView 会多次调用 ChildView onAppear 方法

图像未显示在 UICollectionViewCell 中

iOS - CAKeyFrameAnimation - 未播放

iOS UIKit 控制器显示带有照片的新闻提要