2012-02-15 6 views
0

私は新しいビューを開くために電話を振るアプリケーションを作った。 3つのビューがすべて一緒に表示され、最後のビューで携帯電話を振ると、最初の画面に戻ります。これは、自分自身の.xibで新しいサブクラスコントロールビューを作成するときにうまく動作します。しかし、私はこれをストーリーボードプロジェクトで使用したいと思いますが、私は何を変更する必要がありますか?ストーリーボードを使用するときにどのようにシェイクジェスチャーを使用できますか?

ありがとうございます!

HERE

は.H INコードである:

#import <UIKit/UIKit.h> 
#import "FirstScreenViewController.h" 
#import "SecondScreenViewController.h" 

@interfaceのViewController:のUIViewController

{

NSInteger currentScreen; 
UIViewController* currentController; 

}

@end

、ここで.M IN:

#import "ViewController.h" 

@implementationのViewController

- (ボイド)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning]; 
// Release any cached data, images, etc that aren't in use. 

}

#pragma mark shake 

- (BOOL)canBecomeFirstResponder

{

return true; 

}

- (ボイド)がmotionEnded:(UIEventSubtype)動きwithEvent:(たUIEvent *)イベント

{

if(motion == UIEventSubtypeMotionShake) 

{

if (currentController)

{

[currentController。ビューremoveFromSuperview]; currentController = nil;

} 

    switch (currentScreen) 

{

 case 0: 
      currentController = [[FirstScreenViewController alloc] initWithNibName:@"FirstScreenViewController" bundle:nil]; 
      break; 
     case 1: 
      currentController = [[SecondScreenViewController alloc] initWithNibName:@"SecondScreenViewController" bundle:nil]; 

    } 


    if(currentController) 

{

 [currentController.view setFrame:self.view.bounds]; 
     [self.view addSubview:currentController.view]; 

    } 

    currentScreen++; 
    if(currentScreen >2) 
     currentScreen=0; 

} 

}

#pragma mark - View lifecycle 

- (ボイド)のviewDidLoad

{

[super viewDidLoad]; currentScreen = 0;

}

- (空)あなたはストーリーボードにすべての3つのビューコントローラを追加する必要が

{

[super viewDidUnload]; 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 

}

@end

+0

コードを正しく書式設定すると、ヘルプが表示される可能性が高くなります。 –

+0

今編集しました。これでいい? –

+0

コードを貼り付けるには、質問エディタの上にある{}ボタンをクリックして選択します。または、4つのスペースでインデントします。 – jrturton

答えて

1

viewDidUnload、およびそれらの間にセグを持っている(第3から第1のものに戻るものを含む)各シーンに付随するジェスチャ認識装置。

各ジェスチャ認識器の動作方法は、適切なセグ識別子を持つperformSegue:にビューコントローラに指示します。

関連する問題