Hey yüzden sadece bir örnek uygulama yapıyorum ve ben biraz sorun yaşıyorum, Yani ben bir tablo görünüme sahip ve sonra ben birkaç satır olması ve kullanıcı bir satır tıkladığında yeni bir götüren görünüm. Bu görüntüde müzik çalmak için bir düğme var. Müzik süresine ve kalan süreye göre kaydırıcı çubuk artışı yapmak için bir zamanlayıcı kullanıyorum. i sol üst düğmesi ile tablo görünümüne geri döndüğünüzdeNSTimer
Şimdi benim sorunum, ne ben NSTimer durdurur, böylece koymak gerekiyor?
bu şimdiye kadar ne ben tekrarlanmasını alamayan geçerli: EVET zamanlayıcı durdurmak için. Böyle
#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
Uygulanmayan bir zamanlayıcıyı geçersiz kıldığında uygulama çökmez. – IgniteCoders