3

This blog post задает сам вопрос: как можно визуально управлять элементами панели инструментов в Interface Builder? Конечно, можно использовать this technique для просмотра верхнего уровня, но как насчет других представлений? Не могу ли я дать моему партнеру по дизайну возможность редактировать элементы панели инструментов непосредственно в таком виде без взлома создания локатора UIToolbar, который никогда не использовался?Как создать элементы поднабора панели инструментов UINAVigation Interface Builder?

ответ

0

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

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

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

@synthesize toolbarItems; 

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

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

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

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

+0

В XCode 4.6.3 это дает ошибку: свойство 'toolbarItems' пытается использовать переменную экземпляра '_toolbarItems', объявленную в суперклассе 'UIViewController' – malhal

Смежные вопросы