2009-07-11 12 views
5

Interface Builderを使用して、UIBarButtonItemの識別子を「追加」(「元に戻す」、「やり直し」など)に変更することができます。これは私のボタンに素敵な "+"イメージを与えます。UIBarButtonItemの識別子プロパティをプログラムで変更する

これをプログラムで設定するにはどうすればよいですか? UIBarButtonItemは "setIdentifier"メッセージを受け入れません。

答えて

6

UIBarButtonItemの「識別子」は、一度構築すると変更できません。ただし、ボタンをプログラムで構成されたバリアントに置き換えることで、UIを変更できます。あなたは1つのボタンのスタイルをしたい場合は

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

この投稿のタイトルは誤解を招くものです。これはUIBarButtonItemの識別子を変更するものではなく、識別子プロパティを初期化して新しい識別子を作成するだけです。私は既存のボタンの識別子を変更する方法を探しています。より良いタイトルは、 "新しく作成されたUIBarButtonItemの識別子プロパティをプログラム的に設定する"か、それと似たようなものです。 – Senseful

+2

私の解決策を見つけられなかったのはごめん。それはあなたの期待にはあまり合わなかった。質問をする時点で、私は実際にそれを変更する方法を探していました。解決策は私のために働いた - それはあなたのためにしなかった場合、私は残念です。 – rein

2

は::境と識別子:たとえば、カメラの使用UIBarButtonItemが作成されると

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

、識別子を変更する方法はありません。ただし、新しいUIBarButtonItemを作成して古いUIBarButtonItemを置き換えることができます。

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

self.navigationItem.rightBarButtonItem = barButton; 
関連する問題