0

私は2つ持っており、iPhoneのスプラッシュ画面のように表示ViewControllersするために1つ作成します。UIImageView私はそれを書きますTestAppDelegate.m

====================

splashScreen = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

splashScreen.image = [UIImage imageNamed:@"Default.png"];

[self.window addSubview:splashScreen];

 sleep(6);

[splashScreen removeFromSuperview];

====================

私の質問は、

これに触れるimageviewと2位になりViewControllerます。

それ以外の場合は、睡眠時間の後、自動的に1番目になりViewControllerます。

だから、それを行うことは可能ですか?

4

2 に答える 2

2

これを行う:

appDelegate.hファイルにUIGestureRecognizerDelegateを追加します。

@interface AppDelegate : UIResponder <UIApplicationDelegate,UIGestureRecognizerDelegate>

splashScreen = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
splashScreen.userInteractionEnabled = YES;
splashScreen.image = [UIImage imageNamed:@"Default.png"];
UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapRecognizer.numberOfTapsRequired = 1;
tapRecognizer.numberOfTouchesRequired = 1;
tapRecognizer.delegate = self;
[splashScreen addGestureRecognizer:tapRecognizer];
[tapRecognizer release];

[self.window addSubview:splashScreen];

sleep(6);
[splashScreen removeFromSuperview];
//add ViewController1 here
ViewController1 *objViewController1 = [[ViewController1 alloc]initWithNibName:@"ViewController1" bundle:nil];
[self.window addSubview:objViewController1.view];

スプラッシュ画面をタップするとハンドラーが呼び出されるようになりました

- (void)handleTap:(UITapGestureRecognizer*)recognizer
{
   // Do Your thing. 
   if (recognizer.state == UIGestureRecognizerStateEnded)
   {
     [splashScreen removeFromSuperview]; //edited here
     ViewController2 *objViewController2 = [[ViewController2 alloc]initWithNibName:@"ViewController2" bundle:nil];
    [self.window addSubview:objViewController2.view];
   }
}
于 2012-09-21T04:45:52.087 に答える
0

はい。それは可能です。AppDelegateで保持しNSTimerます。

タイマーのセレクターで、1番目のビューコントローラーにプッシュするコードを記述します。

そしてTouch Recognizer、imageviewとtouchイベントにを置いて、2番目のViewControllerにプッシュするコードを記述します。

于 2012-09-21T04:30:35.513 に答える