Open3

[SwiftUI] UIAlertController を提示した後にperformSegue を実行するとクラッシュする

Yusuke AriyoshiYusuke Ariyoshi

特定の条件下のみ?

Storyboard で遷移先にUIHostingController を指定しているプロジェクトで、performSegueWithIdentifier を実行したときに、segue が見つからずにクラッシュする。

has no segue with identifier 'toSettings''
terminating with uncaught exception of type NSException

以下の手順で再現する。

  • 遷移元の画面でUIAlertController のアラートを提示
  • アプリをバックグラウンド状態に切り替え
  • アプリをフォアグラウンド状態に切り替え
  • performSegueWithIdentifier を実行

環境

  • Xcode 12.5
Yusuke AriyoshiYusuke Ariyoshi

これらのフローがなくても再現する。

  • アプリをバックグラウンド状態に切り替え
  • アプリをフォアグラウンド状態に切り替え