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

Добавление нескольких кнопок в панель навигации в раскадровке

Интересно, можно ли это сделать, используя Раскадровка IB:

self.navigationItem.leftBarButtonItems = @[barButton1, barButton2]

Редакция:

Цель состоит в том, чтобы сохранить преимущества использования раскадровки и, если возможно, без использования каких-либо строк кода.

РЕДАКТИРОВАТЬ № 2:

Основываясь на этом ответе, я экспериментировал и видел, что можно связать свойство Title View элемента навигации с панелью инструментов enter image description here

но он выглядит как хак (и я также хочу сохранить Title):

enter image description here

Любая лучшая идея?

4b9b3361

Ответ 1

Есть способ добавить представление к navigationItem. Затем добавьте кнопки или метки, необходимые для просмотра.

enter image description here

enter image description here

Ответ 2

Можно использовать код ниже:

UIBarButtonItem *btnShare = [[UIBarButtonItem alloc] initWithCustomView:self.backbtn];
UIBarButtonItem *btnRefresh = [[UIBarButtonItem alloc] initWithCustomView:self.testbutton2];   
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:btnShare,btnRefresh, nil]];

Ответ 3

Вы можете создать UIToolbar, содержащий все ваши кнопки:

UIToolbar *toolbar = [[UIToolbar alloc] init];
// ... set toolbars' frame, initialize buttons, etc;
[toolbar setItems:@[barButton1, barButton2] animated:NO];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];

Или вы могли бы использовать setLeftBarButtonItems:animated: и setRightBarButtonItems:animated:

Надеюсь, что это поможет, удачи!

Ответ 4

Вы можете создавать свои кнопки в раскадровке, редактировать/стилизовать их по своему усмотрению, затем создавать свои выходы и добавлять их в качестве объектов верхнего уровня, а затем добавлять их во время выполнения в viewDidLoad с помощью [navigationItem setLeftBarButtonItems:] и [navigationItem setRightBarButtonItems:.. Надеюсь, что это поможет:)

Ответ 5

Я предлагаю вам добавить несколько кнопок на панели инструментов. Добавление нескольких кнопок на панели навигации не является хорошей идеей. если вы хотите добавить несколько кнопок на панели инструментов с помощью раскадровки. эта видеосвязь может помочь вам создать прокручиваемую панель инструментов с несколькими кнопками https://www.youtube.com/watch?v=4nYM8EfTpRw

Ответ 6

Если вы хотите добавить их из кода, в Swift, вы можете сделать:

override func viewDidLoad() {
    // ....
    let ubRefresh = UIBarButtonItem.init(barButtonSystemItem: .Refresh, target: self, action: "refreshManually")
    let ubMyIcon = UIBarButtonItem(image: UIImage(named: "MyIcon"), style: .Plain, target: self, action: "myAction")
    self.navigationItem.setRightBarButtonItems([ubMyIcon, ubRefresh], animated: true)

}