2013-02-21 6 views
0

Possède essentiellement deux contrôleurs de vue oneviewcontroller et mainviewcontroller. Dans oneviewcontroller défini myTimer. Dans mainviewcontroller j'essaie de mettre en pause et de reprendre myTimer en utilisant UIButton. Mais obtenir un message Aucune méthode de classe Connu pour sélecteur 'myTimer'Non Méthode de classe connue pour le sélecteur 'myTimer'

Dans OneViewController NSTimer comme défini myTimer

@property (nonatomic, retain) NSTimer *myTimer; 

@synthesize myTimer; 

- (void)viewDidLoad { 

[self myTimerMethod]; 

[super viewDidLoad]; 

} 


- (void)myTimerMethod{ 

NSLog(@"myTimerMethod is Called"); 

myTimer = [NSTimer scheduledTimerWithTimeInterval:2.4 
              target:self 
             selector:@selector(updateView:) 
             userInfo:nil 
              repeats:YES]; 

} 

- (void)updateView:(NSTimer *)theTimer 
{ 
if (index < [textArray count]) 
{ 

    self.textView.text = [self.textArray objectAtIndex:index]; 
    self.imageView.image = [self.imagesArray objectAtIndex:index]; 
    index++; 
    }else{ 

    index = 0; 

    } 

Je suis en train de faire une pause et de reprendre myTimer de mainviewcontroller

En mainviewcontroller.h

@class OneViewController; 

    @property (strong, nonatomic) OneViewController *oneviewcontroller; 
    @synthesize oneviewcontroller = _oneviewcontroller; 

    -(void)playpauseAction:(id)sender { 

    if([audioPlayer isPlaying]) 
    { 
    [sender setImage:[UIImage imageNamed:@"music.png"] forState:UIControlStateNormal]; 

    [audioPlayer pause]; 

    [[OneViewController myTimer] invalidate]; **\\No Known class method for selector 'myTimer'** 



    }else{ 

    [sender setImage:[UIImage imageNamed:@"audiostop.png"] forState:UIControlStateNormal]; 

    [audioPlayer play]; 

    [[OneViewController myTimer] fire]; **\\No Known class method for selector 'myTimer'** 


    if(isFirstTime == YES) 
    { 
     self.timer = [NSTimer scheduledTimerWithTimeInterval:06.0 
                 target:self 
                selector:@selector(displayviewsAction:) 
                userInfo:nil 
                repeats:NO]; 
     isFirstTime = NO; } } } 

comment puis-je corriger cette erreur.

Merci pour votre aide.

+0

Remplacer 'OneViewController' sur cette ligne avec' self': vous voulez adresser le message à l'instance du Classe 'OneViewController', pas la classe elle-même. – warrenm

Répondre

0

Au lieu de [[OneViewController myTimer] invalidate]; utilisation [self.oneviewcontroller.myTimer invalidate];

En outre, la mise en œuvre OneViewController, au lieu de myTimer = [NSTimer scheduledTimerWithTimeInterval:..... utilisation self.myTimer = [NSTimer scheduledTimerWithTimeInterval:.....

Questions connexes