настройка leftBarButtonItems с помощью UINavigationController в iOS 5 - PullRequest
1 голос
/ 27 января 2012

Я видел в документации, что теперь вы можете иметь массив элементов для leftBarButtonItems и rightBarButtonItems в UINavigationController и не должны создавать UIToolBar и устанавливать его в качестве кнопки. Я в основном хочу кнопку «Домой» слева рядом с кнопкой «назад» навигатора. Так это будет выглядеть так:

BackButtonFromNavigationController HomeBarButtonItem

Я не был уверен, как получить backButton навигационного бара в моем массиве, когда я создаю HomeButton. Я пробовал это, но я вижу только backBarButton навигационного контроллера:

if ([self.navigationItem respondsToSelector:@selector(setLeftBarButtonItems:)]) {
    UIBarButtonItem *hButton = [self createHomeButton];
    self.navigationController.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:self.navigationItem.backBarButtonItem, hButton, nil];
}

Отредактировано для каждого ответа:

if ([self.navigationItem respondsToSelector:@selector(leftItemsSupplementBackButton)]) {
    self.navigationItem.leftItemsSupplementBackButton = YES;
    self.navigationItem.leftBarButtonItem = homeBBI;
}

Я знаю, что homeBBI создан правильно, так как он есть в моем UIToolBar как rightBarButtonItem до iOS 5. Теперь я просто пытаюсь переместить его влево, и я использовал ту же кнопку, чтобы увидеть, будет ли он работать, но он кажется, не работает до сих пор ...

Ответы [ 2 ]

8 голосов
/ 27 января 2012

Не помещайте кнопку возврата в массив.Используйте leftItemsSupplementBackButton, чтобы добавить массив кнопок вместо кнопки возврата.После того, как вы это сделаете, не похоже, что вам даже нужен массив.

Я думаю, вы получаете поведение, которое видите, потому что ваш массив кнопок пуст.Вы добавляете self.navigationItem.backBarButtonItem, что, вероятно, nil.Вы хотите, чтобы кнопка «Назад» от контроллера была на один шаг глубже в стеке навигации, а не кнопка «Назад» для текущего контроллера.

0 голосов
/ 30 октября 2012

У меня была такая же проблема.В моем случае причина скрытия дополнительных кнопок заключалась в том, что я использовал собственный вид заголовка.Как указано в документации:

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

Изменение размера пользовательского представления заголовка решило мои проблемы.Возможно, этот намек поможет другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...