2013-09-12 2 views
0

У меня есть 3 контроллера вида.Как это сделать, когда таймер заканчивается, UIViewController переключается?

View controller 1 имеет кнопку, которая идет для просмотра контроллера 2 (который отлично работает).

У меня есть таймер, который отсчитывает с 15 на вид контроллера 2.

Как я могу сделать так, что, когда таймер хитов 0, он автоматически переключает экраны (и отправляет одно целое число) на 3-й контроллер представления ?

Есть ли какой-либо код, который я могу вставить в метод ниже, чтобы он переключился на мой третий контроллер представления, автоматически отправив целое число?

if(secondsCount==0) 
{ 

    [countDownTimer invalidate]; 

    countDownTimer = nil; 
} 
+0

'- [NSObject performSelector: withObject: afterDelay:]' – nielsbot

ответ

0

Вы должны сделать @property timeValue в своем третьем контроллере представления, чтобы передать целое число.

if(secondsCount==0) 
{ 

[countDownTimer invalidate]; 
countDownTimer = nil; 
ViewController *viewController = [ViewController alloc]init]; 
viewController.timeValue = //enter integer here 
[self presentViewController:viewController animated:YES completion:NULL]; 

} 
+0

спасибо за обратную связь. Им очень жаль, но я очень новичок в этом. Я пропустил значение времени, поэтому точно, что вы набрали (минус строка времени), я просто хочу, чтобы он сначала переключил представления. когда я запустил его, таймер подсчитал до 15, а когда он нажал 0, появился черный экран: \? – user2770808

+0

Вы изменили ViewController на имя своего третьего класса контроллера класса? – EvilAegis

+0

Ну, я еще не создал свой третий монитор, поэтому я просто тестировал его с помощью первого, и поэтому я использовал имя своего первого класса viewcontroller. – user2770808

0

Вы можете использовать -[NSObject performSelector:withObject:afterDelay:] выполнить толчок или поп вашего стека контроллера представления. Если вам нужно отменить до вызова метода, вызовите +[NSObject cancelPreviousPerformRequestsWithTarget:].

Нечто подобное (в вашем втором контроллере представления)

-(void)goToNextViewController 
{ 
    UIViewController * nextViewController = [ [ MyViewController alloc ] initWithNibName:... bundle:nil ] ] ; 
    newViewController.theNumber = /* number */ 
    [ self.navigationController pushViewController:nextViewController animated:YES ] ; 
} 

-(void)startTimer 
{ 
    [ self performSelector:@selector(goToNextViewController) withObject:nil afterDelay:15.0 ] ; 
} 

-(void)cancelTimer 
{ 
    [ NSObject cancelPreviousPerformRequestsWithTarget:self ] ; 
} 
Смежные вопросы