2013-02-19 3 views
0

Я хочу приостановить и возобновить таймер в viewcontroller, который отображается как subview в mainviewcontroller. Кнопка «Воспроизведение/Пауза» в mainviewcontroller при нажатии на нее отображает контроллер просмотра как подпункт, а также воспроизводит звук.Пауза и возобновление таймера в ViewController

Имейте это NSTimer в виде контроллере

[NSTimer scheduledTimerWithTimeInterval:2.6 
           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; 

} 

Я хочу, чтобы приостановить и возобновить таймер, когда кнопка воспроизведения/паузы нажата в mainviewcontroller. Как я могу это сделать.

ответ

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

[myTimer invalidate]; 

/* Остановки приемник из когда-либо стрелять снова и просит его удаления из его цикла выполнения. */

[myTimer fire]; 

/* Вы можете использовать этот метод, чтобы стрелять повторяющийся таймер, не прерывая ее регулярный график стрельбы. Если таймер не повторяется, он автоматически недействителен после стрельбы, даже если его запланированная дата огня не наступила. */

+0

спасибо за ваш ответ, но я хочу приостановить и возобновить его с помощью кнопки воспроизведения/паузы и в методе кнопки паузы воспроизведения. У меня есть таймер паузы и таймер возобновления, но он не работает, потому что у меня есть еще один таймер в mainviewcontroller для отображения viewcontroller as subview – user1452248

+0

Я думаю, что это не имеет значения - способ играть или приостанавливать любого NSTimer только для того, чтобы получить его указатель после его создания, как NSTimer * myTimer = [NSTimer scheduleTimerWithTimeInterval ...]. Если вы хотите использовать этот указатель в своем классе, вам нужно сохранить его в переменной-члене класса. – duDE

+0

Итак, если я хочу использовать этот myTimer из viewcontroller в mainviewcontroller, чтобы приостановить и возобновить его. как я могу это сделать – user1452248

2

Сначала вы должны сохранить ссылку вашего таймера в интерфейсе-файле:

NSTimer *myTimer; 

В файле реализации вы можете просто подключить, а затем обратитесь к нему:

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

Для остановки таймера вызова:

[myTimer invalidate]; 

Чтобы запустить его снова:

[myTimer fire]; 

См. NSTimer Class Reference для получения дополнительной информации о классе NSTimer.