На самом деле 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
}
затем подключите кнопки и добавьте свой вид переключения, это должно сделать это ...
При условии, что вы можете заполнить некоторые части