как динамически помещать UIBarButtonItem в NavigationBar в раскадровке?

Мое приложение строится под раскадровкой и его навигационным контроллером. Я пытаюсь поместить кнопку панели справа от панели навигации, но это совсем не просто. Коды выглядят так...

UIBarButtonItem *barButton = [[UIBarButtonItem alloc]initWithTitle:@"Edit" style: UIBarButtonItemStyleBordered target:self action:@selector(barBtnPressed)];

//        self.navigationItem.rightBarButtonItem = barButton;
self.navigationController.navigationItem.rightBarButtonItem = barButton;

Я сделал все, что мог попробовать, но не повезло.

Любой совет ?


person user1381412    schedule 18.01.2013    source источник
comment
self.navigationItem.rightBarButtonItem = barButton; правильно, так как navigationItem является свойством вашего контроллера представления. Когда вы обычно устанавливаете свойство rightBarButtonItem, вы должны установить его в viewDidLoad контроллера представления, который появляется сверху в стеке вашего навигационного контроллера.   -  person Andrew Tetlaw    schedule 18.01.2013
comment
Спасибо за быстрый совет. Я поместил эти коды в viewDidLoad, но не повезло. Его использование будет другим с раскадровкой? Что мне не хватает?   -  person user1381412    schedule 18.01.2013
comment
Имеет ли объект UIViewController на раскадровке правильный набор классов, чтобы он использовал ваш пользовательский класс?   -  person Andrew Tetlaw    schedule 18.01.2013
comment
Корневым представлением является Контроллер навигации и многие другие контроллеры дочерних представлений и дочерние представления. Эти коды принадлежат одному из дочерних контроллеров представления. Никаких проблем с управлением навигацией, кроме этой проблемы.   -  person user1381412    schedule 18.01.2013
comment
Как этот код 'self.navigationItem.title = @Title;' не работает, я думаю, что навигационный контроллер Storyboard должен обрабатываться иначе, чем контроллер xib. Просто мое предположение. :)   -  person user1381412    schedule 18.01.2013
comment
Ну, код вообще не меняется, но, может быть, просто перетащите элемент кнопки панели на панель навигации в вашей раскадровке и покончите с этим :)   -  person Andrew Tetlaw    schedule 19.01.2013
comment
Вы можете проверить ссылку, указанную в этом ответе: stackoverflow.com/questions/ 14250419/   -  person Bhavin    schedule 19.01.2013


Ответы (1)


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

person pbergson    schedule 25.02.2013