好的,这是一个让我感到沮丧的问题。我在导航控制器中有两个屏幕,一个条形需要是一个大字体(bigFontVC),一个需要是一个小字体(smallFontVC)。
我使用segue从bigFontVC转到smallFontVC。 smallFontVC的viewDidLoad是:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setToNormalFont()
}
和bigFontVC的viewDidLoad是:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setToSmallFont()
}
调整大小从bigFontVC的segue到smallFontVC完美无缺。
现在从smallFontVC转到bigFontVC更加困难。我知道bigFontVC没有加载,所以viewDidLoad不会被调用。现在我正在努力找出将我的功能放在哪里
self.navigationController?.setToNormalFont()
调整BigFontVC的navBar字体大小。
问题是我首先想到的地方这个功能导致导航栏进行字体切换,但它首先显示标题的一半。例如'GAM'然后一瞬间'GAMES'。每次改变都有这个看起来不太好看。因为从bigFontVC到smallFontVC没有发生这种情况,我确信我可以让它不会发生其他事情,但那是我在寻求帮助的地方。
以下是我试图将该功能置于导致标题闪烁而不能顺利改变的地方。
在BigFontVC中有以下地方:
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setToNormalFont()
}
在SmallFontVC中,以下地点:
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.setToNormalFont()
}
我知道这是一个奇怪的问题,它可能是我不知道的导航控制器中更深层次的东西。我想也许以某种方式覆盖后退按钮使它执行一个segue,因为我知道有一个segue没有这个问题。任何帮助都会受到赞赏,即使只是告诉我这是不可能的。
如果有帮助,这是我的导航控制器功能:
extension UINavigationController {
func setToNormalFont(){
setFont(as: UIFont(name: "futura", size: 19)!)
}
func setToSmallFont(){
setFont(as: UIFont(name: "futura", size: 16)!)
}
func setFont(as font: UIFont){
let titleAttributes = [
NSFontAttributeName: font
]
self.navigationBar.titleTextAttributes = titleAttributes
}
}