2015-10-22 109 views
1

有沒有辦法刪除後臺按鈕項目的標題全部視圖控制器的應用程序?刪除UINavigationBar後退按鈕標題


:最重要的是所有字。我一直在最接近的是與this solution

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) 
                forBarMetrics:UIBarMetricsDefault]; 

,但正如我在註釋中提到有大標題被推向右側,使該解決方案是無效的問題。

回答

3

只需設置後退按鈕的title""

下面是一個例子swift

self.navigationItem.backBarButtonItem = UIBarButtonItem(
     title: "", 
     style: UIBarButtonItemStyle.Plain, 
     target: nil, 
     action: nil) 

要做到這一點,在所有的視圖控制器中,我通常會做一個BaseViewController,其中我將該行包含在viewDidLoad方法中。然後,當我有一個viewcontroller我將其子類BaseViewController

如果您還移動了x值-150,那麼您的解決方案就可以工作,但對我而言,這聽起來像是黑客,因爲您始終都在顯示它,但離開視圖邊界。

+0

+1提供了一個有效的解決方案,儘管不得不從一個自定義的視圖控制器擴展是很煩人的。更多的,我也必須實現'UITableViewController'自定義類。但好的方法,謝謝 – sonxurxo

+0

良好的邏輯@Ibrahim – abhi1992

+0

那麼你可以用'''removeTitleFromBackButton()''''''''方法''''''''''''' self.removeTitleFromBackButton()'''在viewControllers中。 –

3

嘗試用這種

self.navigationItem.hidesBackButton = YES; 

隱藏明確的(你爲自己設定)後退按鈕

self.navigationItem.leftBarButtonItem = nil; 
+0

隱藏後退按鈕,而不是後退按鈕**標題** – sonxurxo

+0

您使用哪一個? – Jamil

+0

在你的情況下,你可以設置零/空字符串來刪除標題 – Jamil

0

這樣做還沒有提到的一種方法是使用自定義拼貼視圖,該視圖在標籤中顯示標題,然後從不實際設置ViewControllers的title屬性。

這應該設置在UIViewController的擴展或基類中。

那麼你不必改變barButtonItem在所有的,你必須選擇做標題更多的變化(字幕等)

事情是這樣的:

extension UIViewController { 

    func setTitleView(title:String) { 
     let titleView = CustomTitleView() 
     titleView.titleLabel.text = title 
     self.navigationItem.titleView = titleView 
    } 
} 

如果您用一個標籤出口和一些約束設置一個簡單的CustomTitleView筆尖。

編輯:

Title屬性需要在所有VC上設置爲「」。這樣,在接下來的後退按鈕文本推VC將題爲「」

+0

我看不到這是如何影響後退按鈕 – sonxurxo

+0

後退按鈕標題是從先前的視圖控制器title屬性設置的。如果標題是「」,則按鈕文本是「」。我忘記提及標題屬性需要設置爲「」,但是 – Moriya

0

所有你需要更改UINavigationController的後退按鈕的標題是:

斯威夫特

viewController.navigationController?.navigationBar.topItem?.title = ""

相關問題