0

私は手動でドラッグして、私のストーリーボードのViewControllerに追加したUINavigationBarを持っています。そのNavigationBar内で、私はドラッグして、デフォルトの "Add"イメージとしてスタイリングされた "UIBarButtonItem"を追加しました。手動で追加されたUINavigationBarの右のBarButtonItemを変更しますか?

ビューはモーダルにプッシュされるため、自動的にプッシュされるNavigationBarはありません。

ナビゲーションバーとBarButtonの両方が私のViewControllerと私はそう

if (alreadyAdded) 
{ 
    [self.navigationItem.rightBarButtonItem setStyle:UIBarButtonSystemItemTrash]; 
} 
よう viewDidLoadに、別のデフォルト、ゴミ箱のアイコンにボタン画像を変更しようとするので、

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar; 
@property (strong, nonatomic) IBOutlet UIBarButtonItem *addRemoveButton; 

のようなストーリーボードに接続されています

これは効果がありませんでした。

私もこれを試してみました:

もまた、この何の効果

としなかった

if (alreadyAdded) 
{ 
    _addRemoveButton = nil; 
} 

も影響を与えなかった
if (alreadyAdded) 
{ 
    _addRemoveButton = [[UIBarButtonItem alloc]initWithImage:nil style:UIBarButtonSystemItemTrash target:nil action:nil]; 
} 

このボタンをゴミ箱アイコンに設定するにはどうすればよいですか?

+0

デバッガで、(viewDidLoad'で)設定しようとしているボタンアイテムが存在し、実際にスタイルを追加していることを確認しましたか? –

+0

はい。それはアプリケーションに正しく読み込まれ、表示されます。それはTouchUpInsideでそれに接続された適切なIBActionを呼び出します – DCIndieDev

答えて

1

UIBarButtonSystemItemTrashは、styleプロパティでは取得できません。スタイルは、このコード

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar; 
// No need to create rightBarButtonItem IBOutlet. 
if (alreadyAdded) 
{ 
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemTrash target: nil action: nil]; 
} 
else { 
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target: nil action: nil]; 
} 

を使用documentation here

UIBarButtonItemStylePlainUIBarButtonItemStyleBordered

ルックことができるタイプUIBarButtonItemStyleであり、それはあなたのお役に立てば幸いです。ハッピーコーディング! :)

関連する問題