iPad - 显示/隐藏 UIBarButton

发布于 2024-10-03 02:10:25 字数 34 浏览 0 评论 0原文

有没有办法隐藏或显示 UIBarButtonItem?

Is there a way to hide or show a UIBarButtonItem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无可置疑 2024-10-10 02:10:25

使用它来隐藏栏按钮项目。

self.navigationItem.rightBarButtonItem = nil;

USe this to hide barbutton item.

self.navigationItem.rightBarButtonItem = nil;

醉殇 2024-10-10 02:10:25

实际上,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/controller 方法

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

中然后连接按钮并添加你的视图切换,这应该可以......

假设你可以填写一些部分

Actually, UIBarButtonItem does not respond to .hidden. It is not a subclass of UIButton.

Here is a quick example of how you can switch three buttons a left button a middle button and a right button.

//So, in the proper place

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

//Then this in the proper place

@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;

//Then in the proper place

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

then reload your class in IB or Xcode4 IB in your nib

// then in your

view_switcher/controller methods

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

then connect the buttons and add your view switching, this should do it ...

Assuming you can fill in some parts

追风人 2024-10-10 02:10:25

这是我的 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
}

}

This is my UIBarButtonItem subclass to expose a setHidden method. I use it whenever I have an "optional" button on my bars.
It works for textual or image buttons.

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
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文