Hej, więc właśnie robię przykładową aplikację i mam trochę problemów, więc mam widok tabeli, a następnie mam kilka wierszy, a gdy użytkownik kliknie wiersz, zabiera je do nowego widok. W tym widoku mam przycisk do odtwarzania muzyki. Używam timera, aby zwiększyć suwak na podstawie czasu trwania muzyki i pozostałego czasu.Jak zatrzymać NSTimer
Teraz mój problem polega na tym, co muszę umieścić, aby po przejściu do widoku tabeli lewym górnym przyciskiem wyłączyć NSTimer?
To jest to, co mam do tej pory, nie mogę uzyskać powtórzyć: TAK timer, aby zatrzymać.
#import "SecondViewController.h"
@implementation SecondViewController
@synthesize lbl1;
@synthesize timer;
-(IBAction) slide {
myMusic.currentTime = slider.value;
}
-(IBAction)play
{
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
slider.maximumValue = [myMusic duration];
myMusic.volume = 0.2;
[myMusic prepareToPlay];
[myMusic play];
}
-(IBAction)pause
{
[myMusic pause];
}
-(IBAction)stop
{
slider.value = 0;
myMusic.currentTime = 0;
[myMusic stop];
}
- (void)updateTime{
slider.value = myMusic.currentTime;
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
//This plays music, we must give it a path to find the file and then u can change it.
NSString * pathToMusicFile = [[NSBundle mainBundle] pathForResource:@"Katy" ofType:@"mp3"];
myMusic = [[ AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile] error:NULL];
myMusic.delegate = self;
myMusic.numberOfLoops = -1;
slider.value = 0;
//[myMusic play];
[super viewDidLoad];
}
- (void)viewDidUnload {
[timer invalidate];
timer = nil;
//myMusic.currentTime = 0;
[myMusic stop];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
-(IBAction) TxtChange;{
lbl1.text = @" test2! I CHNAGED TEXT FROM ANOTHER XIB";
}
- (void)dealloc {
[timer invalidate];
timer = nil;
[myMusic release];
[super dealloc];
}
@end
Aplikacja nie zawiesza się, gdy unieważniam timer nie utworzony. – IgniteCoders