私のコードに基づいて、スイッチ(メニュークラスから)でタイマー(メインクラス)を開始/停止したいのですが、スイッチがオンのときにタイマーが起動し、スイッチをオフにしても停止しません。これが私のコードです:
menu.h
@protocol FlipsideViewControllerDelegate;
@interface FlipsideViewController : UIViewController {
id <FlipsideViewControllerDelegate> delegate;
IBOutlet UISwitch *fireSwitch;
}
@property (assign)UISwitch* fireSwitch;
-(IBAction)autoFire;
menu.m
#import "FlipsideViewController.h"
#import "mainViewController.h"
@synthesize fireSwitch;
- (void)viewDidLoad
{
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
//[super viewDidLoad];
fireSwitch.on = [defs boolForKey:activateautoplay];
}
-(IBAction)autoFire {
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
[defs setBool:fireSwitch.on forKey:activateautoplay];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Main.h
#import "FlipsideViewController.h"
#define activateautoplay @"isactivateautoplay"
@interface mainViewController : UIViewController <FlipsideViewControllerDelegate> {
NSTimer *Autotimer;
}
-(void)updateImagePosition:(NSTimer*)mytimer;
Main.m
#import "mainViewController.h"
@sunthesize Autotimer;
- (void)awakeFromNib {
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
if ([defs boolForKey:activateautoplay]) {
self.Autotimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateImagePosition:) userInfo:nil repeats:YES];
} else {
[self.Autotimer invalidate];
}
}
-(void)updateImagePosition:(NSTimer*)mytimer {
.....
}