2017-01-02 84 views
1

我有UIBarButtonItem並且每當我嘗試將標題設置爲按鈕時,它都不起作用。將標題設置爲UIBarButtonItem

@IBOutlet weak var barButton: UIBarButtonItem! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    barButton.title = "AB" 
} 

但是,如果我嘗試創建的UIBarButtonItem動作,然後做sender.setTitle(),那麼它的工作原理。但不在viewDidLoad。當用戶點擊按鈕時,我不想設置標題。

+0

爲此,您需要以編程方式創建UIBarButton上圖那樣的負荷。 –

+0

@DheerajD嗨,你能解釋一下爲什麼不能這樣做嗎? – Nitesh

+0

UIBarButton在視圖控制器加載時分配,並且在運行時無法更改其標題,並且如果要更改標題,則需要分配新的barbutton並將其分配給左側或右側項目。 –

回答

0

如果你已經有了barButton的IBOutlet,爲什麼不直接在故事板上設置標題呢?我認爲這是最簡單的方法,除非你有其他理由以編程方式進行。

enter image description here

+0

它包含用戶名首字母縮寫,所以... – Nitesh

+0

好吧,這將有助於澄清你只能使用編程方法,因爲你的標題只是「設置標題爲UIBarButtonItem」 –

1

更改標題或圖像,然後辭職回navigationItem:

class AnotherViewController: UIViewController { 

    @IBOutlet weak var myBarButton: UIBarButtonItem! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let barButton = myBarButton 
     barButton?.title = "Anther Title" 
     navigationItem.rightBarButtonItem = barButton 

    } 
} 

蘋果文檔:https://developer.apple.com/reference/uikit/uibaritem/1616412-title

你應該添加項目到一個酒吧前,設置該屬性。默認值是零。

0

當我嘗試這個,它的工作原理。也許有一個Xcode的bug,刪除你的按鈕和連接,然後再試一次。

class ViewController: UIViewController { 

    @IBOutlet weak var barButton: UIBarButtonItem! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
     barButton.title = "MyButton" 
} 
0

試試這個

@IBOutlet weak var barButton: UIBarButtonItem! { 
    didSet { 
    barButton.title = "AB" 
} 
} 
相關問題