我正在尝试更改导航控制器后退按钮的字体大小无效。
我目前在之前的视图控制器viewWillAppear
中执行此操作:
navigationController?.navigationBar.backItem?.backBarButtonItem?.setTitleTextAttributes(
[NSAttributedStringKey.font : UIFont.systemFont(ofSize: 5)], for: .normal)
以上代码什么都没做.. 所以,有两个问题。
首先,更改后退按钮字体大小的正确方法是什么(顺便说一下,它看起来要比它应该要困难得多)。
第二,是否有一个单一的地方(比如AppDelegate)我可以进行此更改,以便影响所有视图控制器?
答案 0 :(得分:3)
您可以在AppDelegate中更改它:
var i = setInterval(function() {
if ($('[class="abcd"]').prop('disabled') == false) {
$('[class="abcd"]').click();
clearInterval(i);
} else {
console.log('button disabled');
}
}, 100);
您可以在其中自定义导航栏按钮的字体和大小,以便在所有视图控制器中进行更改。
答案 1 :(得分:0)
我会使用UIAppearance协议来实现这一点。
首先,更改后退按钮字体大小的正确方法是什么(顺便说一下,它看起来要比它应该要困难得多)。
这取决于用例。如果只有一个导航栏,我只需通过这样的操作来更改其后退按钮属性。
navigationItem.leftBarButtonItem?.setTitleTextAttributes
但如果我想自己做一个自定义按钮,那么我只想在这里添加一个新按钮。
第二,是否有一个单一的地方(比如AppDelegate)我可以进行此更改,以便影响所有视图控制器?
如果你想改变整个条形按钮的外观,
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont], for: .normal)
我不会这样做。从长远来看,它不具有可扩展性。你肯定会有更多的导航屏幕,你不会希望它们具有相同的外观,然后,它将是一个更大的重构!