【iOS】一つ前のViewControllerに戻ったらNSNotificationCenterが動かなかった

Pocket

 はい、失敗大王です。まだまだ、失敗しますよ。

 今回は、NSNotificationCenterが動かなくなるという悲しい出来事に遭遇しました。しかも、一つ前のViewControllerに戻った時だけ。

 一つ前のViewControllerに戻る方法は、2つあるのかな。

 【dismissViewControllerAnimated:completion:】で戻るか、
 それとも、Unwind Segue を使って
 【performSegueWithIdentifier:sender:】で戻るか。

 今回は、ゲームを結果画面から ゲームを Retry できるようにしようとして、
 【dismissViewControllerAnimated:completion:】を使ったら、色々初期化できないくて、ゲームが終了したところに戻ってしまったので
 【performSegueWithIdentifier:sender:】で対処することにしました。

 そうすると、ゲーム中に使っている NSNotificationCenter が動かないでございます。で、さまようことしばし、大量に吐出された NSLog の中に 【Warning: Attempt to dismiss from view controller while a presentation or dismiss is in progress!】というメッセージを発見。

 たぶん、dismiss 中に dismiss するなよと怒られているに違いない。

 で、ソースを見ると

 と、なってました。うぎゃぁーーーーーー
 ということで、【dismissViewControllerAnimated:completion:】をバッサリ消して修正完了。

 無事、NSNotificationCenter が動くようになりましたとさ。みなさんもテストコードを書くときは消し忘れがないように気をつけましょう。

おわり

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*