我们正在创建一个应用程序,需要使用导航和选项卡视图控制器来连接不同视图的不同标题。初始视图的标题是图像。第二个视图的标题为文本,第三个视图也是如此。
我们正在使用故事板来构建此应用程序,以下是控制器的层次结构。
这是我们用来在另外两个视图控制器中展示文本标题的代码。
现在的问题是,当我们在iOS 11上测试我们的应用程序时,导航控制器正常工作,一切看起来都很好。但当我们在iOS 10上测试我们的应用程序时,导航控制器中的图像和文本神奇地消失了。有任何想法为什么会发生这种情况吗?
这里有一个展示问题的图片: 问题的图片。左边没有标题显示(IOS 10),右边有标题显示(IOS 11) 我正在使用最新版本的Xcode和Swift 4。提前感谢您的任何帮助。
我们正在使用故事板来构建此应用程序,以下是控制器的层次结构。
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上测试我们的应用程序时,导航控制器中的图像和文本神奇地消失了。有任何想法为什么会发生这种情况吗?
这里有一个展示问题的图片: 问题的图片。左边没有标题显示(IOS 10),右边有标题显示(IOS 11) 我正在使用最新版本的Xcode和Swift 4。提前感谢您的任何帮助。