だから私はストーリーボードを使用してiPadレシピベースのアプリを作成しています。ここで私のプログラムの構造を理解するために、Viewコントローラーのフローを示します。
ViewController --Modally-> PreviewViewController --Modally-> RecipeViewController --Popup-> IngredientsViewController
これはすべてストーリーボードで行われました。を作成し、ポップアップとして表示されるようIngredientsViewControllerにリンクしました。これは正常に機能します。RecipeViewControllerただし、プログラムで却下できるようにしたいIngredientsViewController(音声コマンド機能を実装しているため)。IngredientsViewController問題は、それを却下するためににアクセスできないように見えることです。(申し訳ありませんが、まだ写真を投稿できません)。
私は次のコードを使用してIngredientsViewControllerプログラムで(内からRecipeViewController)提示しています:
[self performSegueWithIdentifier:@"ingr" sender:nil];
これはポップアップを表示するのに問題なく機能しますが、私はそれを却下することはできません。ビューコントローラの階層を介してアクセスしようとしましたが、見つからないようです。スタックの最上位にあると思いますが、どうやらそうではありませんか?私は次のようなことを試しました:
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
繰り返しますが、これは内から呼び出されましRecipeViewControllerた。しかし、それは単にポップアップによって提示されているものではRecipeViewControllerなく、を却下します。IngredientsViewController
明確にするために、IngredientsViewControllerはではなく、ストーリーボードで作成されUIPopoverControllerた通常のviewControllerスタイルであり、そのセグエスタイルはのボタンにリンクされたポップアップRecipeViewControllerです。
どんな助けでも大歓迎です。ありがとう!