从父视图中移除视图控制器

3

我有一个父视图控制器viewController和一个命名为MyControllerchildviewController

我想展示子视图几秒钟,然后将其关闭。

如何从父视图控制器中关闭子视图控制器?

到目前为止,我的代码:

   let mainStoryboard = UIStoryboard(name: "Storyboard", bundle:  NSBundle.mainBundle())
    let vc : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("MyController") as UIViewController
    self.presentViewController(vc, animated: true, completion: nil)

    <<wait for some seconds>>

    -->> dismissview from parents view ???

你可以使用NSTimer并进行调度。 - Mahendra
我已经准确地表达了我的问题。问题是,我该如何将其解除? - mcfly soft
如果您使用UIContainerView,在Storyboard中显示视图并隐藏视图非常简单。 - Iyyappan Ravi
1个回答

3

您可以使用dispatch_after函数并设置时间间隔,来延迟执行代码块:

let seconds: NSTimeInterval = 5.0
let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(delay, dispatch_get_main_queue()) {
  vc.dismissViewControllerAnimated(true, completion: nil)
}

您可以将其定义为函数,以便在程序中的其他位置使用:
func dispatch_async_main_queue(delay: NSTimeInterval, _ block: dispatch_block_t) {
  let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC)))
  dispatch_after(time, dispatch_get_main_queue(), block)
}

--

dispatch_async_main_queue(5.0) {
  vc.dismissViewControllerAnimated(true, completion: nil)
}

谢谢。我将在9分钟内接受,因为我陷入了无法投票的困境 :-) - mcfly soft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接