iPad - Показать / Скрыть UIBarButton - PullRequest
1 голос
/ 18 ноября 2010

Есть ли способ скрыть или показать UIBarButtonItem?

Ответы [ 3 ]

3 голосов
/ 07 декабря 2010

ИСПОЛЬЗУЙТЕ это, чтобы спрятать штангу.

self.navigationItem.rightBarButtonItem = nil;

2 голосов
/ 13 мая 2011

На самом деле 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
}

затем подключите кнопки и добавьте свой вид переключения, это должно сделать это ...

При условии, что вы можете заполнить некоторые части

1 голос
/ 13 февраля 2018

Это мой подкласс 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
}

}

...