2017-01-30 25 views
1

dismissViewControllerは、完了ハンドラを常に呼び出すわけではありません。私は最初のビューを提示しています。私がそれを却下すると、2つのビューを提示している完了ハンドラが呼び出されます。 2番目のビューを閉じると、完了ハンドラが呼び出されていません。ここに私のコードは次のとおりです。dismissViewControllerAnimatedは完了ハンドラを呼び出さない

if self.presentedViewController != nil { 
// Checking it to make sure that I have presentedViewController and it is not dismissed already. 
    self.dismissViewControllerAnimated(false, completion: {    
     //Present 2nd controller. 
    }) 
} 
+0

このコードはどこに置いてありますか? – Ocunidee

+0

自己を却下した場合、完了ブロックを実行する前にvcの割り当てを解除しませんか? – Wez

+0

'animation'パラメータが' false'に設定されていると、コードが同期してブロックの外に置くことができるので、完了ブロックは呼び出されません。 – Brandon

答えて

0

あなたは「プレゼンター」を却下されているので、あなたは却下のUIViewControllerから二番目のUIViewControllerを提示することはできません。

はあなたのプレゼン(提示)の前にあるのUIViewController あなたが却下されているのUIViewControllerであなたの「現在の第二コントローラ」を配置する必要があります。

基本的には、UIViewControllerを終了して、提示しているVCに戻ると、代わりに2番目のコントローラを表示します。

関連する問題