【发布时间】:2018-05-03 07:19:33
【问题描述】:
我们正在创建一个应用程序,该应用程序需要通过导航和选项卡视图控制器连接的不同视图的不同标题。初始视图有一个图像作为标题。第二个视图以文本为标题,第三个视图也以文本为标题。
我们使用故事板来构建这个应用程序,这里是控制器的层次结构。
Navigation Controller --> Tab Bar Controller --> View Controller 1, View Controller 2, View Controller 3
这是我们用来在第一个视图控制器上显示图像的代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let titleView = UIImageView()
titleView.contentMode = .scaleAspectFit
titleView.image = UIImage(named: "logo_white_thin")
self.parent?.navigationItem.titleView = titleView
self.parent?.navigationController?.navigationBar.isHidden = false
self.navigationController?.navigationBar.isHidden = false
}
这是我们用来显示文本作为其他两个视图控制器标题的代码。
override func viewWillAppear(_ animated: Bool) {
guard let uid = Auth.auth().currentUser?.uid else {return}
guard let username = users[uid]?.username else {return}
self.parent?.navigationItem.titleView = title(text: username)
self.parent?.navigationController?.navigationBar.isHidden = false
self.navigationController?.navigationBar.isHidden = false
print("Setting navigation bar title to ", username)
}
title 函数是为返回标签而构建的扩展:
func title(text: String) -> UILabel {
let label = UILabel()
label.text = text
label.textColor = UIColor.white
label.font = UIFont.boldSystemFont(ofSize: label.font.pointSize)
return label
}
现在的问题是,当我们在 iOS 11 上测试我们的应用程序时,导航控制器工作正常并且一切正常。当我们在 iOS 10 上测试我们的应用程序时,导航控制器中的图像和文本神奇地消失了。知道为什么会这样吗?
我正在使用 Swift 4 运行最新版本的 Xcode。提前感谢您的帮助。
【问题讨论】:
-
尝试在title()方法中设置标签框架
-
@iPatel 我不认为它是 title() 方法的问题,因为我还有一个视图控制器,它的标题是一个图像视图,也不会出现......