2013-04-07 4 views
7

UIViewControllerにフォームシートとしてUIViewControllerのモーダルセグを実行するボタンを持つUIViewControllerがあります。そのフォームシートには元のUIViewControllerに戻る巻き戻しセグを持つ取り消しボタンがあります。これは完全にうまくいくように見え、フォームシートを却下します。iOS Unwindナビゲーションコントローラに組み込まれているとSegueが機能しなくなる

元のUIViewControllerを選択し、ナビゲーションコントローラに埋め込むXCodeのオプションを選択すると、巻き戻しセグは機能しなくなり、モーダルフォームシートはもうキャンセルされなくなります。

私は単純な説明があると確信していますが、現在は私を回避しているので、どんな考えも歓迎されています。

ありがとうございました。

答えて

13

あなたが見ている動作をなぜ得るのか分かりませんが、私はそれも見ています。これは、ページシートとフォームシートの両方のプレゼンテーションで発生しますが、フルスクリーンでは発生しません。しかし、元のコントローラ(unwind segueを接続したコントローラ)に入れたメソッドは、unwind segueが引き続き呼び出しています。

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

はい、正しく動作します...非常に奇妙な動作ですが、フルスクリーンで正常に動作しても問題ありませんか?ありがとうございました。 – Darren

+0

@ダーレン、ええ、これは私のバグのようです。これが意図された動作であることを示すドキュメントは見つかりませんでした。 – rdelmar

+2

私はipad網膜シミュレータを使ってios 8.2でもこれを見ています。 IMOこれはバグです – Sam

0

これは、既に回答されていますが、上記の私の完全な解決策を与えていない、ので、私は私のものを共有するだろうと思った:だから、あなたがする必要があるのはその方法でラインを入れています。

私にとって、unwindメソッドは呼び出されていないので、上記のことはできませんでした。代わりに、私はIBActionで簡単なボタンを作ってそれを呼び出しました。以下のスウィフトの例:

@IBAction func cancelToRecipeController() { 
    self.dismissViewControllerAnimated(true, completion: nil) 
    print("cancel to recipe controller ran") 
} 

上記の@rdelmarメソッド呼び出しのおかげで!

(これは、IOS 9のために追加されました)

0
self.dismissViewControllerAnimated(true, completion: nil) 

私のために働くが、popToRootがうまく機能していなかった "却下"。

[self.navigationController popToRootViewControllerAnimated:YES]; 
関連する問題