2016-05-12 6 views
0

Я унаследовал свой ViewController от BaseViewController, и я нажал мой SecondViewController с помощью раскадровки ID.but, когда я пытаюсь позовить со второго взгляда, чтобы контроллер контроллера не работал. Вот мой код:popViewController не работает в iOS 9

dispatch_async(dispatch_get_main_queue(), ^{ 
       [self showMesssgeonAlert:@"Success"]; 
       [self hideProgress]; 
       [self.navigationController popViewControllerAnimated:TRUE]; 
      }); 

Даже я попытался с:

NSArray *controllerArray = self.navigationController.viewControllers; 

for (id controller in controllerArray) 
{ 
    if ([controller isKindOfClass:[ViewController class]]) 
    { 
[self.navigationController popViewControllerAnimated:TRUE]; 
    } 
} 

, но он не работает в обоих conditions.What я должен делать, пожалуйста, помогите мне.

+0

Вы проверили, если 'self.navigationController' не' nil'? – ozgur

+0

Убедитесь, что оба контроллера вида находятся в одном стеке 'UINavigationController'? – Hemang

ответ

0

Убедитесь, что вы нажимаете контроллер SecondViewController на ViewController, если вы используете segue, тогда проверьте тип показа, например (Push, Present Modally). Если это правильно, проверьте объект контроллера навигации, у него должен быть объект.

Наконец, проверьте адрес памяти контроллера навигации в обоих режимах просмотра. То же самое.

0

Вы должны перепроверить:

  1. Оба контроллера вид должны быть на одном стеке навигации контроллера.

  2. Я предполагаю, что контроллер второго взгляда находится на другом контроллере навигации.

  3. Как вы нажимаете на контроллер второго взгляда?

+0

Как я могу проверить, что viewcontrollers находятся на другом контроллере навигации? и я получаю pushViewController: анимированный: вызывается , в то время как происходит существующий переход или презентация; стек навигации не будет обновлен. – Dev

+0

Просто напечатайте: '[self.navigationController viewControllers]' – Hemang

0

Попробуйте использовать appDelegates навигации контроллер так, попробуйте следующие:

dispatch_async(dispatch_get_main_queue(), ^{ 
       [self showMesssgeonAlert:@"Success"]; 
       [self hideProgress]; 
       [((AppDelegate*)[[UIApplication sharedApplication]delegate]).navigationController popViewControllerAnimated:TRUE]; 
      });