3

У меня здесь очень странная проблема. У меня есть приложение с контроллером табуляции и 4 вкладками, каждый из которых имеет контроллер навигации, подключенный к Viewcontroller. Все работало должным образом, но теперь я добавил кнопку к нескольким представлениям, которая вызывает диспетчер Modal View для слайд-шоу и отображения некоторого контента. Внутри этого модального VC есть еще одна кнопка, чтобы скрыть Модальный вид. После того, как модальный вид будет скрыт, если я нажму кнопку «Назад» в моей навигационной панели, представление не будет отображаться назад, а просто покажет предыдущее представление без анимации, в то время как панель навигации действительно анимирована. Но когда я использую панель вкладок для переключения на другой вид и сразу же переключаюсь обратно, он снова начинает работать снова.Анимация Back-Button сломана после увольнения Modal View Controller

Я использую IOS SDK 6 без раскадровки, так как я разработал это приложение обратно на прошивке 3.2 несколько лет назад

Это, как я показываю модальная VC:

-(void)reportIssue{ 
    ReportIssueViewController *rivc = [[ReportIssueViewController alloc] initWithNibName:@"ReportIssueViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController presentModalViewController:rivc animated:TRUE]; 
    [rivc release]; 
} 

И вот как я это скрываю:

- (IBAction)cancelIssue:(id)sender { 
    [self dismissViewControllerAnimated:TRUE completion:NULL]; 
} 

У кого-нибудь такая странная проблема? Я был бы рад любым идеям о том, как избавиться от этого поведения.

Заранее спасибо.

+1

Одна из причин, по которой я видел подобное поведение, не вызывал супер в viewDidAppear (возможно, в viewDidLoad и/или viewDidDisappear также). – rdelmar

+0

Да, он отсутствовал в нескольких Viewcontrollers, но добавление этих супер-звонков не помогло :-( – gasparuff

+0

Вы были правы !!!!! – gasparuff

ответ

5

Я нашел проблему. Я подклассифицировал UITabbarController, и я добавил функцию -(void)viewWillAppear, где я поставил некоторую логику. К сожалению, я забыл добавить вызов [super viewWillAppear:animated] внутри этой функции. Очень глупая ошибка.

Благодаря rdelmar, который указал на возможную причину этого в первом комментарии к моему вопросу.

+1

OMG Я не могу поверить, что это снова случилось со мной – gasparuff

+0

В моем Дело в том, что оно было 'viewDidAppear', но оно имело тот же результат. Нижняя строка: всегда убедитесь, что вы делегируете super, если вы явно не хотите. –

Смежные вопросы