Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 显示隐藏按钮后插入“中断/睡眠”_Ios_Swift_Hidden_Viewcontroller_Break - Fatal编程技术网

Ios 显示隐藏按钮后插入“中断/睡眠”

Ios 显示隐藏按钮后插入“中断/睡眠”,ios,swift,hidden,viewcontroller,break,Ios,Swift,Hidden,Viewcontroller,Break,我想显示一个按钮,然后我想显示它1秒钟,然后视图控制器必须更改。 我尽力了。但是我把睡眠放在哪里并不重要它总是做同样的事情。它等待1秒,然后在很短的时间内显示按钮,并更改为另一个视图控制器 有人能帮忙吗 我的代码: [self.resultButton setTitle:category forState:UIControlStateNormal]; self.resultButton.hidden = NO; sleep(1); UIViewController *vc = [[UIVie

我想显示一个按钮,然后我想显示它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];

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

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

func showController(){

    //present view controller here
}

使用GCD的
dispatch\u 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
,然后立即丢弃该对象,并从您的故事板分配一个视图控制器。

我使用了
dispatch\u after()
就像所描述的一样

当你清楚地使用objective-c时,为什么要用
swift
标记它?@ian macdonald的回答更快更准确。