私はiPhoneプログラミングにかなり慣れていません。タブ バー コントローラーを使用しているときに解決できない問題が発生しました。各タブが別々のクラスファイルとnibファイルを使用する2つのタブを持つアプリがあります。アプリに何かをするようにシェイク ジェスチャを使用しますが、タブ 2 からタブ 1 に戻って電話を振ると、現在のビューではなく 2 番目のビューのアクションが実行され、現在のビューはシェイク後も変更されません。
ここで何か不足していますか?何かを解放する必要がありますか?
よろしくお願いいたします。
FirstViewController.m:
#import "FirstViewController.h"
#import <AudioToolbox/AudioToolbox.h>
@implementation FirstViewController
@synthesize label;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
if (fabsf(acceleration.x) > 2.0
|| fabsf(acceleration.y) > 2.0
|| fabsf(acceleration.z) > 2.0) {
label.text = @"Shake";
}
- (void)viewDidLoad {
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.updateInterval = 1.0f/60.0f;
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
}
- (void)dealloc {
[super dealloc];
}
@end
SecondViewController.m
#import "SecondViewController.h"
#import <AudioToolbox/AudioToolbox.h>
@implementation SecondViewController
@synthesize label2;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
if (fabsf(acceleration.x) > 2.0
|| fabsf(acceleration.y) > 2.0
|| fabsf(acceleration.z) > 2.0) {
label2.text = @"Shake View 2";
}
- (void)viewDidLoad {
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.updateInterval = 1.0f/60.0f;
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
}
- (void)dealloc {
[super dealloc];
}
@end