У меня есть UINavigationController
. Я пытаюсь добавить несколько кнопок в правой части моего navigationBar. Как я могу это достичь?
Что это за кнопка? UIBarButton
или UINavigationItem
?
IOS - UINavigationController добавляет несколько правильных элементов?
Ответ 1
Я уверен, что прочитал в ссылке разработчика, что дополнительные кнопки в навигационной панели не одобряются. Я не могу найти этот проход сейчас. Я не делал этого сам, но нашел эту ссылку, которая, как представляется, точно описывает, что вам нужно сделать: (http://www.mattdipasquale.com/blog/2010/11/02/how-to-add-multiple-uibarbuttonitems-to-uinavigationbar/)
Считаете ли вы использование свойства панели инструментов контроллера навигации?
Ответ 2
Как и в iOS5, вы можете назначить массив элементов кнопки панели для элемента навигации rightBarButtonItems
(обратите внимание на множественное число).
Ответ 3
Я использовал ответ JRTurtons в Xcode 4.5, iOS 6 и реализовал его следующим образом:
// Two buttons at the right side of nav bar
UIBarButtonItem *addAttachButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)];
UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)];
self.navigationItem.rightBarButtonItems = @[addAttachButton,sendButton];
Однако я должен упомянуть, что UIBarButtonSystemItemPageCurl не работает так.
Ответ 4
добавить любую конструкцию в контроллер навигации в XCode легко.
добавить UIView к вашей сцене добавьте нужные вам кнопки в UIView затем перетащите UIView в нужное место в navigationController
Ответ 5
на самом деле даже немного рушится, но в то же время более чистый способ сделать это: просто определите категорию в UINavigationItem, например:
UINavigationItem + Toolbars.h:
@interface UINavigationItem (Toolbars)
@property (nonatomic, retain) IBOutlet UIToolbar * rightToolBar;
@property (nonatomic, retain) IBOutlet UIToolbar * leftToolBar;
- (void)setRightToolBar:(UIToolbar *)_rightToolBar;
- (UIToolbar *)rightToolBar;
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar;
- (UIToolbar *)leftToolBar;
@end
UINavigationItem + Toolbars.m:
#import "UINavigationItem+Toolbars.h"
@implementation UINavigationItem (Toolbars)
- (void)setRightToolBar:(UIToolbar *)_rightToolBar {
self.rightBarButtonItems = _rightToolBar.items;
}
- (UIToolbar *)rightToolBar {
return nil;
}
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar {
self.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_leftToolBar] autorelease];
}
- (UIToolbar *)leftToolBar {
return nil;
}
@end
После этого просто назначьте розетку в настройках IB панель инструментов (просто создайте ее) и наслаждайтесь кнопками, появляющимися в элементе навигации.
Ответ 6
В Xcode 7.1 (возможно, даже раньше) вы можете добавить несколько элементов в правую или левую сторону UINavigationBar, просто перетащив их. Если вы перетащите в нужное место, вы получите небольшую вертикальную полосу, которая указывает, где этот элемент будет вставлен.