Подтвердить что ты не робот

IOS - UINavigationController добавляет несколько правильных элементов?

У меня есть UINavigationController. Я пытаюсь добавить несколько кнопок в правой части моего navigationBar. Как я могу это достичь? Что это за кнопка? UIBarButton или UINavigationItem?

4b9b3361

Ответ 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, просто перетащив их. Если вы перетащите в нужное место, вы получите небольшую вертикальную полосу, которая указывает, где этот элемент будет вставлен.