Несколько bar button item рядом
Пора уже переходить непосредственно к программированию. Постараюсь освещать вопросы на которые искал сам ответы в свое время и использовал материал на практике.
Задача которая часто встречается на практике. Необходимо разместить несколько bar button item рядом. Например как в моем приложении "Конкурсы, игры, розыгрыши". Сверху 3 4 кнопки Увеличить шрифт, уменьшить шрифт, поделиться с друзьями и добавить в избранное. Как выяснилось Apple лучше знает сколько нам нужно кнопок с каждой стороны и через IB вы это сделать не сможете. Только разместить одну кнопку справа, одну слева и посередине. Например на сцене storyboard. Так что придется нам делать это программно.
Код вставляется во ViewDidLoad и выглядит так.
//Создаем объект картинку для кнопки "Избранное" UIImage *Favorites_add = [UIImage imageNamed:@"favorites_add.png"]; UIBarButtonItem *addFavoritesItem = [[UIBarButtonItem alloc] initWithImage:Favorites_add style:UIBarButtonItemStylePlain target:self action:@selector(addFavorites)]; //Почти то же самое, но берем стандартное изображение Action, поэтому картинку для кнопки создавать не нужно. UIBarButtonItem *sendSocialItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(sendSocial)]; //Все остальные кнопки из наших картинок предварительно добавленных в проект UIImage *Font_minus = [UIImage imageNamed:@"font_down.png"]; UIBarButtonItem *fontMinusItem = [[UIBarButtonItem alloc] initWithImage:Font_minus style:UIBarButtonItemStylePlain target:self action:@selector(fontChanges:)]; UIImage *Font_plus = [UIImage imageNamed:@"font_up.png"]; UIBarButtonItem *fontPlusItem = [[UIBarButtonItem alloc] initWithImage:Font_plus style:UIBarButtonItemStylePlain target:self action:@selector(fontChanges:)]; |
Mассив наших кнопочек
NSArray *actionButtonItems = @[ sendSocialItem, addFavoritesItem, fontMinusItem,fontPlusItem,]; //Присваеваем свойству rightBarButtonItems наш массив и вместо одной кнопки справа будут 4 self.navigationItem.rightBarButtonItems = actionButtonItems; |
Возникает вопрос, как заставить наши кнопки что то делать. Рассмотрим на примере кнопки "Избранное" для других аналогично.
// Когда мы создавали кнопку написали target:self action:@selector(addFavorites)]; |
Т.е. в этом классе должен быть метод с названием addFavorites в котором и задано действие. Например.
-(void)addFavorites self.labelName.text =@"Кнопочка нажалась"; |