私は新しいビューを開くために電話を振るアプリケーションを作った。 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
コードを正しく書式設定すると、ヘルプが表示される可能性が高くなります。 –
今編集しました。これでいい? –
コードを貼り付けるには、質問エディタの上にある{}ボタンをクリックして選択します。または、4つのスペースでインデントします。 – jrturton