【Swift4】self.dimissが動かない


この記事の概要

Swiftにおいて、self.dismissが動かない、機能しない場合の対処法を調べた。

目次


  • この記事の概要
  • 目次
  • やろうとしたこと
  • 解決策
  • まとめ


やろうとしたこと

二つの画面を繋ぐViewControllerで、「ボタンを押したら戻る」とい処理を実装したい時、


   self.dismiss(animated: true, completion: nil)


を使う人って結構多いんじゃないかな、と思う。

自分もその一人だったのだが、なぜかdismiss君が言うことを聞いてくれなかったので、
症状と解決策をまとめた。

所謂「メモ帳アプリ」を製作していた時のこと。

二つ目のViewControllerに記入した内容がボタンを押したら保存されて、一枚目のTableViewに表示される仕組みである。

だが、二枚目の「投稿する」ボタンを押しても、元の画面に戻ってくれない。

  
   self.dismiss(animated: true, completion: nil)


は、ちゃんと書いている・・・。どうしてだろう・・・?

[図]メモ帳アプリのstoryboard

解決策

 
 self.navigationController?.popViewController(animated: true)


解決策はズバリ、dismissをこちらのコードに変更したことでした。

おそらく、navigationcontrollerでembed Inしてたんですが、それが悪さをしていてdismissを使えなくしていたんでしょう。




コメント

このブログの人気の投稿

【Unity】シーンギズモがデフォルトで表示されない時

【Swift4】argument passed to call that takes no arguments の解決策

【Rails5】SyntaxError: (): mapping values are not allowed エラーの解決法