Привет, у меня есть кнопка правой панели навигации, которую я создал в раскадровке. Теперь я хотел бы добавить вторую правую кнопку, как в приложении календаря Apple. Версия чистого кода будет:

navigationItem.rightBarButtonItems = [rightA, rightB]

Однако я уже создал одну кнопку в раскадровке с различными выходами и сегментами и в идеале хотел бы сохранить ее при добавлении второй. Насколько я понимаю, теперь вы можете создать обе кнопки в раскадровке в Xcode7, но я все еще использую Xcode 6, поэтому я думаю о каком-то гибридном решении для кода раскадровки.

Возможно ли это в Xcode 6?

1
user1904273 3 Янв 2016 в 19:37

2 ответа

Лучший ответ

Просто создайте массив с существующим элементом и новым элементом:

navigationItem.rightBarButtonItems = [navigationItem.rightBarButtonItem!, rightB]

(или наоборот, как вам удобнее).

4
pbasdf 3 Янв 2016 в 17:04

Предположим, у вас есть navigationController, в котором вы хотите иметь несколько кнопок. Начиная с 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 = ДА;

0
Akash 3 Янв 2016 в 17:26