簡體   English   中英

UINavigationController 的后退按鈕消失了?

[英]UINavigationController's back button disappears?

我注意到我的一個視圖控制器發生了一些奇怪的事情:后退按鈕消失了,但可以通過點擊左上角(即按鈕應該駐留的位置)返回到前一個視圖控制器。

在我的整個文件中,沒有將 self.navigationItem.hidesBackButton 設置為 YES 的行; NSLog 也會在 viewDidLoad 中打印 0 作為 self.navigationItem.hidesBackButton 的值。

這發生在模擬器和真實設備中。 有任何想法嗎?

哦親愛的。 在之前的view controller的實現中,不小心把self.title設置為@"",導致了這個煩人的bug。

刪除此行即可解決問題。

我有一個遞歸導航控制器,這也發生在我身上,我用這個代碼來修復它:

self.navigationItem.leftItemsSupplementBackButton = true

以防萬一有人使用自定義后退按鈕遇到此問題並且上述修復程序不起作用,這里有一個類似的問題,我遇到了不同的解決方案。

我有一個自定義的后退按鈕,文本消失,而可以看到箭頭UINavigationController 自定義后退按鈕從 NavigationBar 中消失

因此,如果有人遇到類似情況,自定義后退按鈕上的后退按鈕文本消失,這是我的方案和修復。

我在自定義 NavigationController 類中自定義了后退按鈕,如下所示:

private func customizeBackButton() {
    let backImage = UIImage(named: "BackButton")?.withRenderingMode(.alwaysOriginal)
    navigationBar.backIndicatorImage = backImage
    navigationBar.backIndicatorTransitionMaskImage = backImage
    
    UIBarButtonItem.appearance().setTitleTextAttributes([
      NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
      NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
    ], for: .normal)
}

這給了我:

UINavigationController 自定義后退按鈕

現在,當我點擊后退按鈕文本時,文本消失了: UINavigationController UINavigationBarButton 后退按鈕消失

我確保我遵循了上述所有答案,例如設置標題以確保色調顏色有效等。但是這不起作用。

就我而言,我甚至需要為后退按鈕的highlighted狀態設置屬性,如下所示:

UIBarButtonItem.appearance().setTitleTextAttributes([
      NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
      NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
], for: .highlighted)

在此之后,后退按鈕文本從未消失

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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