2016-05-12 15 views
0

BaseViewControllerからViewControllerを継承していて、2番目のビューからコントローラを見るためにpopviewを動作させようとしているときに、SecondViewControllerをストーリーボードID.butでプッシュしました。 popViewControllerがiOS 9で動作していません

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

がさえ、私が試した: はここに私のコードです?conditions.Whatの両方で動作していないその

NSArray *controllerArray = self.navigationController.viewControllers; 

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

しかし、私が何をすべき私を助けてください。

+0

'self.navigationController'は' nil'ない場合はチェックしましたか? – ozgur

+0

両方のビューコントローラが同じ 'UINavigationController'スタックにあることを確認しますか? – Hemang

答えて

0

ViewControllerでコントローラSecondViewControllerを押していることを確認してください。segueを使用している場合は、(Push、Present Modally)のような表示タイプを確認してください。これが正しい場合は、ナビゲーションコントローラオブジェクトを確認します。オブジェクトが必要です。

最後に、両方のView Controller did loadメソッドのナビゲーションコントローラのメモリアドレスを確認します。それは同じでなければならない。

0

あなたは二重にチェックする必要があります

  1. 両方のビューコントローラが同じナビゲーションコントローラのスタック上にある必要があります。

  2. 第2のビューコントローラーは別のナビゲーションコントローラーにあります。

  3. どのように2番目のビューコントローラにプッシュしていますか?

+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]; 
      }); 
関連する問題