2009-07-11 84 views
5

通過Interface Builder,我可以將UIBarButtonItem的標識符更改爲「添加」(或「撤消」,「重做」等等)。這給我的按鈕一個不錯的「+」圖像。以編程方式更改UIBarButtonItem的標識符屬性

如何以編程方式設置? UIBarButtonItem不接受「setIdentifier」消息。

回答

6

一旦構建,UIBarButtonItem的「標識符」不能被修改。但是,可以通過用程序構造的變體替換按鈕來更改UI。例如:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(doAddAction:)]; 
+10

此主題的標題具有誤導性。這不會更改UIBarButtonItem的標識符,只會創建一個標識符屬性已初始化的新標識符。我正在尋找一種方法來修改現有按鈕上的標識符。更好的標題是「以編程方式設置新創建的UIBarButtonItem的標識符屬性」或類似的東西。 – Senseful 2010-03-21 05:46:48

2

如果你想要一個按鈕樣式:邊界和標識:相機使用

UIBarButtonItem *btn; 
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)]; 
btn.style=UIBarButtonItemStyleBordered; 
0

一旦的UIBarButtonItem創建,是沒有辦法改變的標識符。但是,您可以創建一個新的UIBarButtonItem來替換舊的UIBarButtonItem

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                   target:self 
                   action:@selector(buttonClickedAction:)]; 

self.navigationItem.rightBarButtonItem = barButton; 
相關問題