显示隐藏按钮后插入休息/睡眠

时间:2015-02-05 14:08:31

标签: ios swift hidden viewcontroller break

我想要显示一个按钮,然后我想显示它1秒钟,之后视图控制器必须更改。 我已经尽力了。但是我把睡眠放在哪里并不重要(1); - 它总是一样。等待1秒钟,然后显示按钮的时间非常短,并更改为另一个视图控制器。

有人可以帮忙吗?

我的代码:

[self.resultButton setTitle:category forState:UIControlStateNormal];
self.resultButton.hidden = NO;

sleep(1);

UIViewController *vc = [[UIViewController alloc] init];
vc = [self.storyboard instantiateViewControllerWithIdentifier:@"mapViewControllerID"];

[self presentModalViewController:vc animated:YES];

3 个答案:

答案 0 :(得分:2)

使用GCD的dispatch_after来完成此任务。

[self.resultButton setTitle:category forState:UIControlStateNormal];
self.resultButton.hidden = NO;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"mapViewControllerID"];
  [self presentModalViewController:vc animated:YES];
});

您还应该注意,您编写的视图控制器分配会创建一个默认的UIViewController,然后立即抛弃该对象并从故事板中分配一个视图控制器。

答案 1 :(得分:0)

要实现这一点,您可以使用NSTimer在一段延迟后调用特定函数,并在该函数中将代码显示为显示新视图控制器

NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector:  Selector("showController"), userInfo: nil, repeats: false)

func showController(){

    //present view controller here
}

答案 2 :(得分:0)

我使用了dispatch_after(),就像正在描述here

一样