Как создать элементы подпункта панели инструментов UINavigation Interface Builder? - PullRequest
3 голосов
/ 06 марта 2012

В этом блоге задается тот самый вопрос, который у меня есть: как визуально управлять элементами панели инструментов в Интерфейсном Разработчике?Конечно, можно использовать эту технику для представления верхнего уровня, но как насчет других представлений?Разве я не могу дать своему партнеру по дизайну возможность редактировать элементы панели инструментов непосредственно в таком виде без необходимости создавать заполнитель UIToolbar, который фактически никогда не используется?

1 Ответ

0 голосов
/ 18 апреля 2012

Вот как я это сделал. Я добавил это свойство в свой контроллер @interface:

@property (nonatomic, strong) IBOutletCollection(UIBarButtonItem) NSArray *toolbarItems;

В @implementation я добавил:

@synthesize toolbarItems;

Затем в перо у меня были все UIBarButtonItem с за UIToolbar. В навигаторе «Объекты» я выбрал их все, а затем переместил их из панели UIToolbar, чтобы они не могли видеть, что они являются частью. Затем для каждого из них я щелкнул правой кнопкой мыши и перетащил кружок рядом с «Новая коллекция исходящих ссылок» на «Владелец файла» и выбрал toolbarItems в появившемся всплывающем окне. И теперь все UIBarButtonItems просто волшебным образом появляются в UIToolbar, больше никакой работы не требуется.

Увы, это не идеально. Теперь, когда UIBarButtonItems не находится в UIToolbar в перо, они являются полностью невидимым конструктором интерфейса. Они все еще находятся в навигаторе «Объекты», но на самом деле не видно, как они выглядят. Это похоже на неудачную ошибку (зарегистрированную как rdar: // 11234043 ).

Другая проблема заключается в том, что, насколько я могу судить, нет способа увидеть порядок элементов в IBOutletCollection. Я добавил их в том порядке, в котором я хочу, чтобы они отображались справа налево, но это будет PITA, если мне когда-нибудь понадобится изменить порядок или добавить новые где-то посередине.

Здесь мы надеемся, что Apple добавляет более приятную поддержку IBOutletCollection в конструктор интерфейсов с видимыми контейнерами какого-то рода.

...