0

タスク: 私はログインと呼ばれるモーダルビューをプッシュするナビゲーションコントローラを持っています。このログインビューには、signupという別のモーダルビューをプッシュするボタンがあります。ユーザーがサインアップ・モーダルにサインアップし、ログイン・モーダルが却下されるべきである。サインアップの送信アクションからの投稿を待つログインビュー内にnsnotificationを作成しました。NSNotificationはモーダルビューを却下しません

問題ログインは通知を受信しますが、ログインビューは拒否されません。私は、メソッドが実行されることを知っています。なぜならNSLogが起動するからです。

ログインのviewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) [email protected]"SignedUp" object nil]; 

ログインサインアップ方法に解任呼び出した後

NSLog(@"Dismiss"); // this fires 
[self dismissModalViewControllerAnimated: YES]; 

申し込み方法(子供コントローラー)

[self dismissModalViewControllerAnimated: YES]; 
[[NSNotificationCenter defaultCenter] postNotificationName:@"SignedUp" object:[self parentViewController]]; 

私もこれを試してみましたが却下

[self.parentViewController dismissModalViewControllerAnimated:YES]; 

私はこれらのコントローラを押していません。私は使用していますpresentModalViewController

+0

を介して入力の多くを得ることができますuは解決策を持っていると確信していますか? – Ilanchezhian

答えて

1

スタック全体を却下しようとしているのであれば、なぜそれらを一度に1つずつ破棄していますか?これはNotificationsの問題ではないかもしれません。あなただけの

[[[self parentViewController] parentViewController] dismissModalViewControllerAnimated:YES]; 

そして、あなたは再びそれを表示したい場合は、その後、ちょうどそれを再びpresentModalViewController作りを使用してスタック全体を開くことができます。

私はあなたがhttps://stackoverflow.com/search?q=Dismiss+multiple+modal+controllers

+0

これは基本的に解決策です。私はdismissメソッドを提示されたモーダルの最も基本的なビューに移動し、コードを追加しなければならなかった[self.navigationController dismissModalViewControllerAnimated:YES]; – Trevor

0

モーダルビューをどのように表示しますか?私が尋ねる理由は、あなたが「モーダルビューを押すナビゲーションコントローラ」と言うことです。

pushViewController:animated:を使用している場合、それはモーダルビューではなく、popViewControllerAnimated:を使用して再度離れる必要があります。

+0

私は混乱しているいくつかのverbageを使用しています。私はpresentModalViewControllerを使用しています – Trevor

+0

その場合、私の答えを完全に無視してください!私はあなたがネストされたモーダルビューコントローラを持っているので混乱していると思うが、あなたのコードはうまくいくはずだ。私は思うだろう。 。 。 – deanWombourne

関連する問題