2010-11-18 49 views
1

有没有办法隐藏或显示UIBarButtonItem?iPad - 显示/隐藏UIBarButton

+0

我们可以通过它的属性设置为无,每当我们要显示它,然后我们就可以在状态只写这样我们就可以显示按钮隐藏导航项目。 – AppAspect 2010-12-09 06:49:26

回答

3

使用此来隐藏barbutton项目。

self.navigationItem.rightBarButtonItem = nil;

2

实际上,UIBarButtonItem不会响应.hidden。它不是UIButton的子类。

下面是如何切换三个按钮左侧按钮中间按钮和右侧按钮的快速示例。

//所以,在适当的位置

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在你的笔尖

//然后在

view_switcher /控制器方法

-(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 
} 

然后连接按钮,并添加您的视图切换,这应该这样做...

假设你可以在一些地方

填写
1

这是我的UIBarButtonItem子类来公开一个setHidden方法。每当我在酒吧上有一个“可选”按钮时,我都会使用它。 它适用于文本或图像按钮。

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 
} 

}