例えば「UITextView が空白の時はClear ボタンを非表示にしたい」といった場合。
毎回UIBarButtonItem を消して、必要になったら再度追加して…ってのは面倒臭い。
そこで、ボタン自体はそこに置いたまま、非表示にしてしまおうという方法。
if ( showButton ) { [self.barButtonItem setEnabled:YES]; self.barButtonItem.tintColor = (UIColor*)textColor; } else { [self.barButtonItem setEnabled:NO]; self.barButtonItem.tintColor = [UIColor colorWithWhite:0 alpha:0]; }
非表示にする時は、ボタンを使用不可にした上で、文字色を透明にしちゃうわけですね。
ちなみに、ボタンのテキスト色がデフォルトの場合、textColor はnil でOKです。
参考
こちらの記事を参考にさせて頂きました。
つか、例によってまんまです。