2013-04-08 6 views
12

である私がFirstClassに私はUIButtonためのログインを持つ2つのUIViewControllerクラスを持って、ユーザーがボタンをタップしたとき、私はそのため... SecondClassが表示されます私は、そのために私が行っている、私はFirstClassのにリダイレクトされますログアウトボタンを、持っている、試みが進行

をSecondClassで

SecondClass *index = [[SecondClass alloc] init]; 
[self presentModalViewController:index animated:YES]; 

を行っています

私はSecondClassにログアウトボタンを押すと、私は警告MSG

ここでの問題は何
**Attempt to dismiss from view controller <FirstClass: 0e39w88e160> while a presentation or dismiss is in progress!** 

を取得。..

答えて

2

はあなたがチェックし&をログアウトこれらの行コール:

if (![[self modalViewController] isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
1

これを引き起こす原因はたくさんありますが、いくつかのオプションがあります:

  1. viewWillAppear、viewWillAppearなどのViewControllerメソッドの1つでsuperを呼び出すことを忘れてしまった。スーパービューを呼び出す必要があるときは、UIViewControllerのドキュメントを参照してください。
  2. dismissModalViewControllerAnimated:メソッドが複数回呼び出されています。これは、ターゲットを複数回UIButtonに追加した場合に発生します。

問題をよりよく理解するには、両方のView Controllerのコードをすべて貼り付けてください。

27

追加の両方のiOS 6と前のiOS 6の答え:

のiOS 5.0以降

あなたがログアウトすると、却下する前にこのチェックを追加します。

if (![self.presentedViewController isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES completion:nil]; 
} 

のiOS 4。 X以下

このチェックを外す前に:

if (![[self modalViewController] isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

がpresentedViewControllerとdismissViewControllerAnimated:完了:iOSの5.0 –

+1

おかげ@PavelAlexeevから市販されている、私はドキュメントで検証し、私の答えを更新しました。 –

関連する問題