显示特定时间间隔的图像

时间:2012-06-07 11:24:44

标签: iphone objective-c ios

我有UIImageView的视图控制器。在视图中确实加载我想在图像视图上设置特定时间间隔的图像。应该清除该图像视图,应用程序应切换到下一个屏幕。我试过以下代码无效:

 welcomeImage.image=[UIImage imageNamed:@"abc.png"];
sleep(5);
homeScreenController *controller=[[homeScreenController alloc]initWithNibName:@"homeScreenController" bundle:nil];
controller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:controller animated:YES];

在这种情况下,它在视图加载之前处于休眠状态,并且它也不会进入下一个屏幕。那么代码有什么问题呢?

4 个答案:

答案 0 :(得分:4)

使用以下代码/ ..

- (void)viewDidLoad 
{
    [super viewDidLoad];
    [self performSelector:@selector(goToNextView) withObject:nil afterDelay:5.0];
}



- (void)goToNextView
{
        homeScreenController *controller=[[homeScreenController alloc]initWithNibName:@"homeScreenController" bundle:nil];
        controller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
        [self presentModalViewController:controller animated:YES];


}

答案 1 :(得分:1)

最简单的解决方案是在一段时间后启动一个事件。我建议使用performSelector。

- (void) hide {
   //For example. 
   [self dismissModalViewController];
}

- (void) viewDidLoad {
   //Setup my image.
   [self performSelector:@selector(hide) withObject:nil afterDelay:3];
}

答案 2 :(得分:1)

你可以使用NSTimer 像这样的东西

- (void) viewDidLoad {
.......
NSTimer *timer = [[NSTimer scheduledTimerWithTimeInterval:(2.5)
                                              target:self selector:@selector(hideImage) 
                                            userInfo:nil repeats:NO] retain];
....
}

- (void)hideImage
{
 yourImage.hidden = YES;
}

答案 3 :(得分:1)

另外,你在主线程中创建了一个sleep(5),这很糟糕。

尝试类似

的内容
[self performSelectorOnBackground:@selector(hide) withObject:nil]

并在方法sleep(5)中执行您想要的事情(以及-(void)hide

-(void) hide {
    sleep(5)
    // ...
}
祝你好运;)