Ответ 1
Перетащите элемент BarButtonItem и поместите левую сторону в свой навигационный элемент.
Я следую этому учебному пособию по добавлению навигации боковой панели к приложению.
В данном исходном коде они предустановили раскладки раскадровки. Один из них - это вид, который имеет "элемент навигации" и "элемент кнопки бара", который отображается слева от верхней панели навигации.
Я пытаюсь сделать то же самое в своем приложении, однако элемент кнопки автоматически отображается справа, и я не могу найти способ переместить его влево.
Я заметил, что в примере, представленном в уроке, он предоставляет эту опцию leftBarButton для опции:
И когда я проверяю мой, это выглядит так:
Нет контроллера навигации из-за того, как работает SWRevealView. Когда я запускаю приложение, я могу видеть кнопку, и она работает отлично, только проблема - это с правой стороны. Я сравнил свое мнение с примером и не могу найти никакой разницы.
Любая помощь приветствуется.
ИЗМЕНИТЬ Это может помочь. В раскадровках это выглядит так:
И это то, что мой выглядит как
Перетащите элемент BarButtonItem и поместите левую сторону в свой навигационный элемент.
Я не мог найти способ управлять этим в раскадровке. Поэтому я закодировал его в моей функции viewDirectLoad viewcontroller, добавив следующий код
self.navigationItem.leftBarButtonItem = _sidebarButton;
self.navigationItem.rightBarButtonItem = nil;
1/. Щелкните правой кнопкой мыши на Storyboard > Open as > Source Code
2/. Найдите свой контроллер просмотра Ctrl + F : <name of View Controller>
3/. Найти navigationItem
> Вы увидите barButtonItem
следующим образом:
<navigationItem key="navigationItem" title="Title" id="n9s-Cu-Dtc">
<barButtonItem key="rightBarButtonItem" title="Item" image="menu-icon-2.png" id="aN6-4T-o4T"/>
</navigationItem>
4/. Измените key="rightBarButtonItem"
на key="leftBarButtonItem"
Сохранить и закончить. Щелкните правой кнопкой мыши на Storyboard > Open as > Builder Interface
У меня была такая же проблема. Визуально оказалось, что у меня не было панели навигации на главном контроллере, но она была там.
В конце концов я обнаружил, что если я сначала щелкнул по контроллеру навигационного представления, появилась панель навигации на главном контроллере. Я разместил элемент панели кнопок на панели навигации, но затем удалил его (просто нужно было временно включить изображения в панели навигации). Затем я смог перетащить изображение меню, которое я создал из своих Images.xcassets, на панель навигации контроллера Main view, чтобы создать правильный элемент панели кнопок. Вам просто нужно выбрать значок медиа-библиотеки в правой части раздела "Утилиты", чтобы найти изображения и использовать их. Затем просто установите sidebarButton Referencing Outlet в соответствующий файл myviewcontroller.h. Вы можете сделать это быстро, выбрав изображение меню на своих навигационных барах, удерживая клавишу управления, а затем перетащив его в свойство sidebarButton в связанном файле viewcontroller.h с помощью режима разделенного экрана помощника.
На других контроллерах представления в моем приложении (аналогично контроллерам видения "Фото и карта" ) мне просто нужно было настроить контроллеры представлений на панель "Прозрачная панель навигации" для их верхней панели в разделе атрибутов "Контроллеры представлений" (в раскадровке Утилиты). Затем на них появились идентичные навигационные бары от главного контроллера. Я также должен был сделать их аналогичным образом создавать элементы меню кнопки меню, а также установить боковую панель для ссылок в свой файл *.h. Ю можно сделать это быстро, выбрав изображение меню на своих навигационных барах, затем выбрав знак реферирования (+) и перетащив его на значок желтого круга контроллера режима просмотра, удерживая клавишу ctrl.
Не уверен, что я пропустил что-то в инструкциях, но это сработало для меня.
Вы также можете добавить кнопки левой стороны по коду:
NSMutableArray *leftBtns = [[NSMutableArray alloc] init];
UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"LeftButton"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonPressed)];
[leftBtns addObject:leftBtn];
[self.navigationItem setLeftBarButtonItems:leftBtns animated:NO];
//метод
-(void)leftButtonPressed
{
NSLog(@"Left Button Tapped");
}
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
[button setImage:[[UIImage imageNamed:@"BtnBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
[button.imageView setTintColor:[UIColor whiteColor]];
[button addTarget:self action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc]
initWithCustomView:button];
self.navigationItem.leftBarButtonItem = buttonItem;
Я решил это, перетащив панель навигации с vc1 на vc2 в контур документа. Панель навигации теперь доступна в табло для сброса навигационных барбэктонитов.