2016-11-08 68 views
0

我想要巧妙地設置UINavigationController中「後退」按鈕的所有title屬性,以便我不必在任何地方執行self.navigationController.navigationBar.backButtonItem.title = "Back"或將子類別UINavigationController設置爲無處不在,所以我創建了這個擴展:在UINavigationController中設置所有後退按鈕標題

extension UINavigationItem { 
    open var backBarButtonItem: UIBarButtonItem? { 
     get { 
      return self.backBarButtonItem 
     } 

     set { 
      newValue?.title = "Back" 
      backBarButtonItem = newValue? 
     } 
    } 
} 

但它說'backBarButtonItem' used within its own type

以前有沒有人做過這件事,或者可以想辦法讓它工作?

回答

1

您會收到此錯誤消息,因爲您無法創建名稱與SDK中定義的變量類似的變量。

不能覆蓋現有的功能

像你的情況是將其命名爲backBarButtonTitle由於它採用的是蘋果

doc提到這 UINavigationBarUIKit

被定義爲open var backBarButtonItem: UIBarButtonItem?

擴展可以向某個類型添加新功能,但它們不能覆蓋現有功能 。

+0

這是因爲我想嘗試覆蓋已經存在的backBarButtonItem,並在設置之前更改標題 - 這是不可能在擴展?只在一個子類中? –

+0

@ChrisByatt您無法用擴展名覆蓋現有功能,更新了我的答案。 – Rajat

-2

請按照此屏幕截圖然後運行您的項目。我認爲你可以很容易地解決你的問題:) enter image description here

相關問題