2010-11-18 4 views
1

UIBarButtonItemを非表示にする方法はありますか?iPad - UIBarButtonの表示/非表示

+0

我々はnilにそのプロパティを設定し、いつでも私たちはボタンを表示できるように、我々はただの状態で書くことができ、それを表示することにより、ナビゲーション項目を非表示にすることができます。 – AppAspect

答えて

3

これを使用して、バーボタンアイテムを非表示にします。

self.navigationItem.rightBarButtonItem = nil;

2

実際、UIBarButtonItemは.hiddenに応答しません。これはUIButtonのサブクラスではありません。

ここでは、3つのボタンを左ボタン、中央ボタン、右ボタンに切り替える方法の簡単な例を示します。

ので、適切な場所に

IBOutlet UIToolbar *bottomToolbar; 
IBOutlet UIBarButtonItem *leftButton; 
IBOutlet UIBarButtonItem *flexerSpace; 
IBOutlet UIBarButtonItem *middleButton; 
IBOutlet UIBarButtonItem *rightButton; 

//次に、この適切な場所での

@property (retain, nonatomic) IBOutlet UIToolbar *bottomToolbar; 
@property (retain, nonatomic) IBOutlet UIBarButtonItem *leftButton; 
@property (retain, nonatomic) IBOutlet UIBarButtonItem *flexerSpace; 
@property (retain, nonatomic) IBOutlet UIBarButtonItem *middleButton; 
@property (retain, nonatomic) IBOutlet UIBarButtonItem *rightButton; 

が続いて適切な場所に

@synthesize bottomToolbar; 
@synthesize leftButton; 
@synthesize flexerSpace; 
@synthesize middleButton; 
@synthesize rightButton; 

その後、リロード// //あなたのクラスのIBまたはXcode4 IBであなたのクラス

あなたには、いくつかの部品

に記入できると仮定すると、

//その後、

-(IBAction)switchToLeft:(id)sender { 

NSArray *newButtonArray = [NSArray arrayWithObjects: middleButton, flexerSpace, rightButton, nil]; 

[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it 
} 

-(IBAction)switchToMiddle:(id)sender { 

NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, rightButton, nil]; 

[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it 
} 

-(IBAction)switchToRight:(id)sender { 

NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, middleButton, nil]; 

[bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it 
} 

その後、ボタンを接続して、ビューの切り替えを追加するには、

view_switcher /コントローラの方法で、これはそれを行う必要があります...

1

これはsetHiddenメソッドを公開するための私のUIBarButtonItemサブクラスです。バーに「オプションの」ボタンがあるときはいつでも使用します。 テキストボタンやイメージボタンに使用できます。

class AltoUIBarButtonItem: UIBarButtonItem { 

var originalImage : UIImage? 
var originalTitle : String? 

override func awakeFromNib() { 

    originalTitle = self.title 
    originalImage = self.image 
} 

func setHidden(_ hidden: Bool) 
{ 
    if hidden 
    { 
     if originalImage != nil { self.image = nil} 
     if originalTitle != nil { self.title = ""} 
     self.isEnabled = false 
    } 
    else 
    { 
     if originalImage != nil { self.image = originalImage} 
     if originalTitle != nil { self.title = originalTitle} 
     self.isEnabled = true 
    } 
} 

func setOriginalTitle(_ originalTitle: String?) 
{ 
    self.originalTitle = originalTitle 
} 

}