Можно ли совмещать кнопку правой панели навигации в раскадровке с закодированной?
Привет, у меня есть правый элемент панели навигации, который я создал в раскадровке. Теперь я хотел бы добавить вторую правую кнопку, как в приложении Apple для календаря. Версия чистого кода будет:
navigationItem.rightBarButtonItems = [rightA, rightB]
Тем не менее, я уже создал одну кнопку в раскадровке с различными выходами и сегментами и в идеале хотел бы сохранить ее, добавив вторую. Насколько я понимаю, теперь вы можете создавать обе кнопки в раскадровке в Xcode7, но я все еще в Xcode 6, так что я думаю о каком-то гибридном решении кода раскадровки.
Это возможно в Xcode 6?
2 ответа
Просто создайте массив с существующим элементом и новым элементом:
navigationItem.rightBarButtonItems = [navigationItem.rightBarButtonItem!, rightB]
(или наоборот, как вы предпочитаете).
Предположим, у вас есть навигационный контроллер, в котором вы хотели бы иметь несколько кнопок. Начиная с iOS 5 вы можете назначить массив. Проблема в том, что вы теряете все преимущества использования раскадровки, как это будет сделано программно.
Я использовал следующий трюк. Обычно, когда вы хотите использовать несколько кнопок на панели навигации, вам не нужна панель инструментов.
В текущем представлении (не в контроллере навигации), где вы хотите, чтобы кнопки появлялись, покажите панель инструментов, изменив
bottomBar = выведено на bottomBar = панель инструментов.
введите описание изображения здесь
Панель инструментов появится внизу. Добавьте UIBarButtons к этой панели. Свяжите их с другими контроллерами представления, используя сегменты и т. Д.... в вашем файле.h создайте выход для каждой кнопки
@property (сильный, неатомный) IBOutlet UIBarButtonItem * Button1;
@property (сильный, неатомный) IBOutlet UIBarButtonItem * Button2;
@property (сильный, неатомный) IBOutlet UIBarButtonItem * Button3;
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects: self.Button3, self.Button2, self.Button1, nil];
self.navigationController.toolbarHidden = YES;