2012-05-15 2 views
0

У меня есть контроллер панели вкладок с видом внутри контроллера навигации. Одна из кнопок на этом появляется модальный вид. Я поставил свою начальную точку зрения в качестве делегата для модального и вызовите следующее:Не удается вызвать кнопку возврата на UITabBarController

- (void)dischargeSaveComplete:(dischargeView *)controller 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 

    [self.navigationController popViewControllerAnimated:YES]; 
} 

Это правильно увольняет модальный вид, но это не вызывает кнопку возврата. Нужно ли мне делать что-то еще, так как оно находится внутри контроллера панели вкладок?

Я попытался установить анимацию как показано ниже, и она не работает.

- (void)dischargeSaveComplete:(ehrxEncounterDischargeView *)controller 
{ 
    [self dismissViewControllerAnimated:NO completion:nil]; 

    [self.navigationController popViewControllerAnimated:NO]; 
} 

Найдено решение, основанное на одном из ответов, потому что я был в контроллере панели вкладок, я должен был назвать popviewcontroller с первого взгляда, как показано ниже:

- (void)dischargeSaveComplete:(ehrxEncounterDischargeView *)controller 
{ 
    [self dismissViewControllerAnimated:YES completion:^(void) 
    { 
     demoView *e = [self.parentViewController.tabBarController.viewControllers objectAtIndex:0]; 
     [e.navigationController popViewControllerAnimated:YES]; 
    }]; 
} 

ответ

0

Вы хотите 2 анимации, чтобы следовать друг за другом, что не допускается, как вы это делали. Вы либо должны отменить одну из анимации, либо поместить popViewController внутри блока завершения для своей первой анимации.

[self dismissViewControllerAnimated:YES completion:^(void) { 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
]; 
+0

Обновлено мой вопрос, я пытался ваше предложение, и он дал мне ошибку о неправильный тип указателя блока. Установки для анимации также не были. – Jhorra

+0

Я только что изменил код, действительно была ошибка с возвратом из блока завершения. Я просто попробовал, и это сработало как шарм! – nicolasthenoz

+0

Это все еще не работает для меня, но я думаю, что это связано с тем, что он находится в контроллере панели вкладок. Когда я выхожу из ситуации делегата, и просто попробуйте называть его одним нажатием кнопки, только с помощью popViewControllerAnimated он тоже не работает. – Jhorra

0

и может попытаться задержки при выполнении второго действия

[self.navigationController performSelector:@selector(popViewControllerAnimated:) withObject:@"YES" afterDelay:1]; 

надеюсь, что это работает .. счастливый кодирования :)

+0

Обновленный мой вопрос, я попробовал ваше предложение, и оно не сработало. Установки для анимации также не были. – Jhorra

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