Я нашел слегка рекурсивный способ сделать это, который работает для моих целей.У меня есть переменная экземпляра BOOL, которую я использую, чтобы заблокировать обычную анимацию всплывающих окон и заменить свое собственное неанимированное поп-сообщение.Переменная изначально установлена на NO.При нажатии кнопки «Назад» метод делегата устанавливает для него значение «YES» и отправляет новое не анимированное всплывающее сообщение на панель навигации, тем самым снова вызывая тот же метод делегата, на этот раз с переменной, установленной в «YES».Если для переменной задано значение YES, метод делегата устанавливает для него значение NO и возвращает YES, чтобы разрешить появление неанимированного всплывающего окна.После второго вызова делегата мы возвращаемся к первому, где возвращается NO, блокируя оригинальную анимацию!Это на самом деле не так грязно, как кажется.Мой метод shouldPopItem выглядит следующим образом:
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{
if ([[navigationBar items] indexOfObject:item] == 1)
{
[expandedStack restack];
}
if (!progPop)
{
progPop = YES;
[navBar popNavigationItemAnimated:NO];
return NO;
}
else
{
progPop = NO;
return YES;
}
}
У меня работает.