![](/img/trans.png)
[英]iOS - UIBarButtonItem - Back Button title vertical position not adjusting
[英]UIBarButtonItem remove Back Button Title - iOS 11
另一種方法是為您的navigationController設置UINavigationControllerDelegate
並刪除其函數中的標題。
class NoBackButtonTitleNavigationDelegate: UINavigationControllerDelegate {
func navigationController(
_ navigationController: UINavigationController,
willShow viewController: UIViewController,
animated: Bool
) {
viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
}
}
使用此代碼,
var newBackButton = UIBarButtonItem(image: UIImage(named: "back"), style: .plain, target: self, action: #selector(self.back))
navigationItem?.leftBarButtonItem = newBackButton
創建導航控制器類,如下所示。 將此“CustomNavViewController”分配給StoryBoard中的UINavigationController
class CustomNavViewController: UINavigationController,UINavigationControllerDelegate
{
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func navigationController(
_ navigationController: UINavigationController,
willShow viewController: UIViewController,
animated: Bool
) {
viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
}
}
因此,無需在每個viewControllers中執行此操作。 最后從AppDelegate類中刪除以下行,如果存在,
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), for:UIBarMetrics.default)
而不是垂直移動標題,您可以水平移動。 如果標題很長,你可以使它的顏色透明。 工作得很好我:
let barButtonItemAppearance = UIBarButtonItem.appearance()
barButtonItemAppearance.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .normal)
barButtonItemAppearance.setBackButtonTitlePositionAdjustment(UIOffsetMake(-200, 0), for:UIBarMetrics.default)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.