ストーリーボードに次のコントローラーがあります。
ナビゲーションコントローラーは、左側のメインビューコントローラーのボタンで接続されています。ポップオーバーに表示されます。ユーザーが右側のテーブルビューコントローラーの上部にある[サインアウト]ボタンをクリックすると、メインビューコントローラーに戻り、サインアウトを実行するメソッドを呼び出してから、認証ビューコントローラーを表示する必要があります(ユーザーがサインインしていない場合、アプリは使用できません)。私がこれをやろうとしたすべての方法は失敗しました。
アンワインドセグエでほぼ実行できますが、メインビューのアンワインドメソッドで認証ビューコントローラーを起動すると、「プレゼンテーションまたは却下の進行中にビューコントローラーを却下しようとしました」という警告が表示されます。解雇が完了するまで任意の時間を待つようにタイマーを設定することは、ハックのように思えます。(「あなたのセグエがちょうど完了した」コールバックがあったらいいのにと思います。)
メインビューコントローラーをprepareForSegueメソッドの設定コントローラーのデリゲートとして設定し、ボタンがクリックされたときにデリゲートメソッドを呼び出すことによってそれを行うことはできません。これは、セグエのdestinationViewControllerがないためです。私の設定コントローラーでは、それを収容するのはナビゲーションコントローラーです。
これを行うための明白な方法がいくつかありますよね?おそらく、設定ビューコントローラのメソッドにボタンをアタッチして、それ自体を閉じてから、完了ブロックでNSNotificationを起動しますか?それはまだハッキーのようです。