簡體   English   中英

UIBarButtonItem刪除后退按鈕標題 - iOS 11

[英]UIBarButtonItem remove Back Button Title - iOS 11

    UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), for:UIBarMetrics.default)

我使用上面的方法來移除iOS 11之前的backButtonTitle但是在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM