Избегайте затухания / затухания UIBarButtonItem во время анимации pushViewController - PullRequest
9 голосов
/ 17 февраля 2012

У меня в приложении only-ios5 есть элемент navigationControllerDelegate:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"common-settingsbutton"] style:UIBarButtonItemStylePlain target:nil action:nil];
    [viewController.navigationItem setRightBarButtonItem:myButton]; 
}

Это работает, но когда выполняется контроллер push-представления с анимацией по умолчанию (т. Е. С использованием push-перехода), исчезают rightBarButtonItem и исчезаютво время анимации.

Как мне избежать этого?


ОБНОВЛЕНИЕ

Единственный обходной путь , который я нашел:создайте UINavigationBar background с теми же элементами UIBarButtonIt, нарисованными в png (в той же позиции, того же цвета) и правильно установите фон на основе нужных мне кнопок.Затем, конечно, добавьте свои элементы UIBarButtonItems.

Ответы [ 4 ]

3 голосов
/ 15 марта 2012

Единственный обходной путь, который я нашел: создайте фон UINavigationBar с теми же элементами UIBarButtonIt, нарисованными в png (в той же позиции, того же цвета) и правильно установите фон, основываясь на нужных мне кнопках. Затем, конечно, добавьте свои UIBarButtonItems.

0 голосов
/ 28 июня 2017
button. adjustsImageWhenHighlighted = NO;

Когда вы нажимаете правую кнопку BarButton, она выделяется как Fade In / Fade Out. Чтобы избежать того, что одно свойство этой кнопки corretsImageWhenHighlighted установлено в NO.

0 голосов
/ 24 февраля 2012

В соответствии с документами вы можете отключить анимацию для BarButtonItem

[viewController.navigationItem setRightBarButtonItem:myButton animated:NO];

Но, похоже, это не работает в рассказываемом проекте.Кнопка все еще оживляет в.

0 голосов
/ 17 февраля 2012

Создать кнопку перед нажатием в контроллере представления вместо метода протокола.

...