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 上显示为白色
iOS14.2 SwiftUI PageTabView 会多次调用 ChildView onAppear 方法