2012-04-23 11 views
10

なぜわからないのですかdismissViewControllerAnimated:completion:。私はただそれをしたい。プッシュセグからストーリーボードでviewControllerを解除するにはどうすればいいですか?

は私が

[self performSegueWithIdentifier:@"my_segue" sender:self]; 

で始まるしかし、私は何も起こらないよりも却下呼んでいます。別のセグを作成することもできますが、新しいView Controllerを作成します。

私の質問は次のとおりです。performSegueWithIdentifier:sender:をどのように拒否しますか?

答えて

0

[my_segue_view_controller dismissModalViewControllerAnimated: YES]

は(わからないが、それは私の練習で動作します)

+3

'[docs](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html)のように' dismissModalViewControllerAnimated: 'を使わないでください。推奨されていません。代わりに 'dismissViewControllerAnimated:completion:'を使うべきです。 –

0

performSegueWithIdentifier:sender:自体が却下されていない、それは名前のセグエを開始することと呼ばれるだけの方法です。セグーで起こることは、より興味深いものです。

あなたはdismissViewControllerAnimated:completion:を呼び出す必要があり、それは以前にpresentViewController:animated:completion:を使用してビューコントローラを発表呼ばれたビューコントローラを、提示によって呼び出されるべきであることですね。詳細は、the UIViewcontroller docsを参照してください。

31

あなたが呼び出しているのViewControllerでnavigationBar持っていますか:

[self.navigationController popViewControllerAnimated:YES]; 

をスタックからビューをポップする:

[self performSegueWithIdentifier:@"my_segue" sender:self]; 

をその場合は、あなたが使用する必要があります。そこ1つのセグエコールだが、フレームワークが呼び出しているようだ:

presentViewController:animated:completion: 

か:適切な

pushViewController:animated: 

レイ

+0

私はdismissViewController ...を中心とするさまざまな組み合わせを試みていました。幸い、代わりにあなたの提案である 'popViewController'を見つけて試しました。これが本当かどうかは確かではありませんが、PUSH segueとそれをスタックから取り除くための相互POPの必要性との間には可能な関係があることは確かです。 – BonanzaDriver

2

ビューコントローラは、セグエに押されたので、あなただけのビューコントローラから

[self dismissViewControllerAnimated:YES completion:nil]; 

を呼び出すことができます。

関連する問題