1. ホーム
  2. アイオス

[解決済み】UIBarButtonItemの表示/非表示を切り替えるにはどうしたらいいですか?

2022-04-05 08:10:41

質問

IBでいくつかのボタンを持つツールバーを作りました。メインウィンドウのデータの状態によって、ボタンの1つを隠したり表示したりできるようにしたいです。

UIBarButtonItem は hidden プロパティを持っていません。そして、私がこれまでに見つけた非表示の例では、ナビバーボタンを nil に設定することが含まれています。

解決するには?

ボタンを 強い アウトレット(仮に myButton を追加・削除するには、このようにします。

// Get the reference to the current toolbar buttons
NSMutableArray *toolbarButtons = [self.toolbarItems mutableCopy];

// This is how you remove the button from the toolbar and animate it
[toolbarButtons removeObject:self.myButton];
[self setToolbarItems:toolbarButtons animated:YES];

// This is how you add the button to the toolbar and animate it
if (![toolbarButtons containsObject:self.myButton]) {
    // The following line adds the object to the end of the array.  
    // If you want to add the button somewhere else, use the `insertObject:atIndex:` 
    // method instead of the `addObject` method.
    [toolbarButtons addObject:self.myButton];
    [self setToolbarItems:toolbarButtons animated:YES];
}

アウトレットに格納されているため、ツールバー上にない場合でも参照を保持することになります。