2013-02-21 2 views
0

Имеют в основном два контроллера вида oneviewcontroller и mainviewcontroller. В oneviewcontroller определен myTimer. В mainviewcontroller я пытаюсь приостановить и возобновить myTimer с помощью UIButton. Но не получаю сообщение Нет Known метод класса для выбора '' MyTimerНет Известный метод класса для селектора 'myTimer'

В OneViewController определено NSTimer в 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; 

    } 

Я пытаюсь сделать паузу и возобновить MyTimer из mainviewcontroller

В 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; } } } 

как я могу исправить эту ошибку.

Спасибо за помощь.

+0

Заменить 'OneViewController' на этой линии с' self' вы хотите адресовать сообщение к экземпляру 'OneViewController', а не сам класс. – warrenm

ответ

0

Вместо [[OneViewController myTimer] invalidate]; использование [self.oneviewcontroller.myTimer invalidate];

Кроме того, в реализации OneViewController, а myTimer = [NSTimer scheduledTimerWithTimeInterval:..... использование self.myTimer = [NSTimer scheduledTimerWithTimeInterval:.....

Смежные вопросы