2012-03-05 6 views
0

Итак, я начал экспериментировать с раскадрой.ios5 раскадровка добавить правую кнопку в навигационную панель

поэтому моя раскадровка, как следовать

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

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

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

Я попытался встроенный в контроллер nav в контроллере tableview, но только ботинки 2 навигатора.

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

Спасибо,

EDIT: Добавить раскадровки скриншот

storyboard

ответ

1

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

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). Затем следующий бит кода заменяет эти элементы некоторыми новыми (replacementItem1 3). Поскольку он появляется, вы пытаетесь изменить вкладку на основе представления, которое в настоящее время находится в приложении, вероятно, вы захотите включить его в метод viewWillLoad. Это означает, что панель вкладок должна обновляться по мере загрузки вида. Конечно, вам нужно будет установить некоторые условия почти в каждом представлении, чтобы панель вкладок постоянно менялась до той, которую вы хотите.

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

+0

Мне нужно начать с списка таблиц без. Поэтому я не начинаю раскадровку с Tab. Только когда пользователь нажимает на элемент в списке, он покажет детали, которые являются моим контроллером tabbar с двумя вкладками .... я получу захват экрана раскадровки. – pdiddy

+0

Хорошо, я думаю, посмотрите, что вы имеете в виду. Полагаю, вы хотите иметь динамическую панель вкладок?Взгляни сейчас. Пока вы ждете, вы можете прочитать [это] (http://stackoverflow.com/questions/7977639/is-it-possible-multiple-tab-bar-controller-in-an-application-in-objective-c). Похоже, что iOS HIG предлагает избежать этого. – Squatch

+0

Это не динамическая панель вкладок. В представлении, содержащем TabBar, есть 2 tabitems. Каждый элемент - tableviewcontroller. Я хотел добавить кнопку на панели навигации для первой вкладки, но не могу заставить ее работать. Спасибо за попытку найти решение. – pdiddy

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