0

MainMenuViewControllerは、BonusViewControllerをモーダルに表示します。BonusViewControllerを閉じてから、新しいBonusViewControllerを表示して、BonusViewControllerを効果的に「リセット」したいと思います。

MainMenuViewControllerでこのメソッドを呼び出すために通知を使用しています

-(void)resetBonus{



    [self dismissViewControllerAnimated:YES completion:nil];

    [self presentViewController: BonusViewController animated:NO completion:nil];


}

上記のpresentViewController呼び出しで入力しているときに、BonusViewControllerが自動検出されることを期待していましたが、そうではなく、入力したときにviewControllerが表示されません。このように表示する前に、VCを初期化するか、割り当てる必要がありますか?または、ストーリーボードを使用しているので、これを行うこともできますか?

この方法は廃止されたと思いますが、私もこれを試しました

-(void)resetBonus{

    [self dismissModalViewControllerAnimated:YES];
    [self presentModalViewController: BonusViewController animated:NO ]; 

}

ここに画像の説明を入力してください

Sumanthが提案したことをしましたが、私は今このメッセージを受け取ります:

ここに画像の説明を入力してください

だから今私はやっています:

#import "BonusViewController.h

....

-(void)resetBonus
{
BonusViewController  *bonus = [[BonusViewController alloc]init];
[self dismissModalViewControllerAnimated:NO];
[self presentModalViewController: bonus animated:NO ];

}

エラーはすべてなくなりましたが、BonusViewControllerが表示されると、ディスプレイが黒一色になり、音が聞こえますが、画面に何も表示されません。

4

4 に答える 4

1

また、.hファイルに#import"BonusViewController.h"を書き込むことを忘れないでください

BonusViewController  *objBonus = [[BonusViewController alloc]init]; 
[self dismissViewControllerAnimated:YES completion:NULL];
[self presentViewController:objBonus animated:YES completion:NULL];

ビューコントローラのオブジェクトを作成する必要があり、ビューコントローラを直接渡すことはできません。

于 2013-01-23T11:07:39.300 に答える
1

presentModalViewControllerビューコントローラを割り当てて初期化し、次のように書き込みを使用して提示する必要があります

BonusViewController  *bonus = [[BonusViewController alloc]init]; 
[self dismissModalViewControllerAnimated:YES];
[self presentModalViewController: bonus animated:NO ];
于 2013-01-23T10:14:57.790 に答える
0
#import "BonusViewController.h"
-(void)resetBonus
    {
    BonusViewController  *BonusViewController = [[BonusViewController alloc]init];
        [self dismissViewControllerAnimated:NO completion:nil];
        [self presentViewController: BonusViewController animated:NO completion:nil];
    }

セット両方のアニメーションはNOです

編集 :#import "BonusViewController.h"

于 2013-01-23T10:17:06.597 に答える
0

与えられた答えは正しいと確信していますが、正しく機能させることができませんでした。どういうわけか、音が聞こえるのでBonusViewControllerが表示されているようですが、画面が黒く、視覚的に何も表示されていません。

とりあえず以下のことをやったのですが、これは私が本当に望んでいたスムーズな効果ではありません。

それを行うためのより良い方法を見つけるためにもっと時間があれば、私はこれを再訪しなければなりません。

-(void)endBonus
{
    [self dismissViewControllerAnimated:NO completion:^{
        [self performSelector:@selector(resetBonus) withObject:nil afterDelay:1];
    }];

}
-(void)resetBonus
{
 [self performSegueWithIdentifier: @"segueToBonus" sender: self];
}
于 2013-01-23T16:41:09.750 に答える