раскадровка ios5 добавить правую кнопку на панель навигации - PullRequest
0 голосов
/ 05 марта 2012

Итак, я начал экспериментировать с раскадровкой.

так что моя раскадровка выглядит следующим образом

контроллер nav -> tableviewcontroller -> tabBarController -> tableViewController в качестве элемента панели вкладок (покупка связывает их через поиск отношений)

Последний tableviewcontroller появляется с навигационной панелью вверху, но я не могу добавить ни один элемент панели кнопок на нем. даже код self.navigationItem.rightBarButtonItem = self.editButtonItem не заставляет его появляться.

Дело в том, что с первым контроллером таблиц он работает (работает код и дизайнер). Я подозреваю, что это было связано с первым навигационным контроллером.

Я попытался встроить контроллер Nav в контроллер таблицы, но это только 2 панели навигации.

Любая помощь приветствуется

Спасибо

РЕДАКТИРОВАТЬ: Добавить скриншот раскадровки

storyboard

1 Ответ

1 голос
/ 07 марта 2012

Исходя из моего собственного опыта, вы обычно используете эту последовательность:

tabBarController -> navController -> tableViewController

Другими словами, контроллер панели вкладок с элементом панели вкладок, содержащим навигациюконтроллер, который в свою очередь содержит таблицу.Если это не то решение, которое вы ищете, или кнопка не отображается, не могли бы вы добавить снимок вашей раскадровки?


ОБНОВЛЕНО: Если вы пытаетесь создать панель вкладокдинамический, вам нужно изменить массив, который использует tabBarController.viewControllers.Как упоминалось в комментариях, это не лучший подход, если вы следуете руководству по интерфейсу , но вот как я заставил его работать:

//Initial tab bar items
self.tabBarController.viewControllers =
[NSMutableArray arrayWithObjects:originalItem1, originalItem2, nil];

//Now let's replace the old items with some new ones!
self.tabBarController.viewControllers = 
[NSMutableArray arrayWithObjects: replacementItem1, replacementItem2, replacementItem3, nil];

Как вы можете видеть, мыизначально установите панель вкладок, чтобы она содержала два элемента панели вкладок (originalItem1 & 2).Затем следующий фрагмент кода заменяет эти элементы некоторыми новыми (replaceItem1 & 2 & 3).Поскольку оказывается, что вы пытаетесь изменить вкладку в зависимости от представления, в котором в данный момент находится приложение, возможно, вы захотите включить это в метод viewWillLoad.Это означает, что панель вкладок должна обновляться по мере загрузки представления.Конечно, вам нужно будет установить некоторые условия почти в каждом представлении, чтобы панель вкладок постоянно менялась на ту, которую вы хотите.

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

...