私は基本モダルビューコントローラーを持っています。今私は戻って最初のビューコントローラに戻したい2つのモーダル表示コントローラーを閉じる
ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];
:私は3番目のビューコントローラを呼び出し、そこから
FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];
:私はその後で第二1を作成します。 I(これは、現在のビューコントローラが示されている)試した:
-(IBAction)doneBtn
{
//[self.parentViewController dismissModalViewControllerAnimated:YES]; //removed
[self dismissModalViewControllerAnimated:NO]; //added
[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil]; //added
}
の中央/ビューコントローラで、iは、のviewDidLoadでオブザーバーを追加:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismissModals:)
name:@"CloseAllModalViews"
object:nil];
及び方法:
-(void) dismissModals:(id)sender
{
[self dismissModalViewControllerAnimated:NO];
}
を押すと何もしません。それはどんな意見も却下しません。
どのように私はこれを動作させることができますか?
編集:なぜそれがクラッシュしたのかを理解しました。私はIBの完了ボタンにセグを追加したことを忘れていました。これはメモリの問題を引き起こし、クラッシュを引き起こしていました。
EDIT 2:両方のビューコントローラをベース/最初のビューコントローラに戻します。それは私にアニメーションを与えません。私はアニメーションなしで現在のVCを却下し、中間のVCをアニメーションで却下することができますが、移行の前に中間のVCが少し見えます。可能であれば、現在のVCからベースVCへのアニメーションを持つことを好むでしょう。
コンソールに何もヒントを:あなたは自動却下したいあなたのビューで
:
は、あなたのdoneBtnの方法でこれを入れていますか?あなたがそれを構築するときにxcodeからの警告? –
いいえ、私はipadでそれを実行するとコンソールにクラッシュ情報はありません。私は、xcode 4.2がクラッシュ時に以前のバージョンよりも少ないフィードを返すことに気付きました。 =/ – Padin215
最初のviewcontrollerがナビゲーションコントローラの場合、 'popToRootViewControllerAnimated:'を使うことができます。それを変えたい? –