Xcode 6 (ベータ 6) を使用して、iOS8 で iOS7 アプリのテストを開始しました。iOS 8 が「プッシュ」および「モーダル」セグエを廃止したことは承知していますが、すべてのセグエが機能していることがわかってうれしかったです... 1 つを除いて。
アプリが UINavigationController で UITabBarController を使用している場合、モーダル セグエからのアンワインドが壊れているように見えることを示すデモ アプリを作成しました。(別のアンワインド セグエの投稿を見ましたが、デモ アプリが obj-c を使用しているのに対し、swift を使用していました)。
これが私がより具体的に見ているものです: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue) -> [This ViewController Cannot Unwind]
興味深いことに、別のモーダル セグエを実行すると巻き戻すことができます。 ]
また、UITabBarController または UINavigationController のいずれかを削除すると巻き戻すことができることもわかりましたが、アプリの UI アーキテクチャ全体を変更する予定はありません :)
私が見る限り、ルート ビュー コントローラーは canPerformUnwindSegueAction:fromViewController:withSender: への呼び出しを受け取ることはありません。これは iOS7 で行われます。
私の質問: アンワインド セグエを機能させる別の方法はありますか?
読んでくれてありがとう。
デモコードはこちら: https://github.com/nmsasaki/UnwindDemo
アップデート
この問題は iOS8.1 で修正されたようです。(UINavigationController のカスタム サブクラスを作成する iOS 8.0 の回避策は引き続き機能します。)