如何在计时器结束时这样做,UIViewController切换?

时间:2013-09-12 01:04:38

标签: ios uiviewcontroller

我有3个视图控制器。

视图控制器1有一个按钮,可以看到控制器2(工作正常)。

我有一个计时器,从视图控制器2上的15开始倒计时。

如何才能使定时器达到0时自动切换屏幕(并发送一个整数)到第3个视图控制器?

是否有任何代码可以插入到下面的方法中,以便它会切换到我的第三个视图控制器自动发送整数?

if(secondsCount==0)
{

    [countDownTimer invalidate];

    countDownTimer = nil;
}

2 个答案:

答案 0 :(得分: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];

}

答案 1 :(得分: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 ] ;
}