2016-05-11 56 views
3

我有一个父母viewControllerchildviewController名为MyController。 我想显示子视图几秒钟,然后解雇它。 如何从父视图控制器中解除childs viewcontroller?关闭视图控制器从父母视图

我迄今为止代码:

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 ??? 
+0

您可以使用'NSTimer'并安排它。 –

+0

我精简了我的问题。问题是我如何解雇它? –

+0

如果您使用UIContainerView,显示视图并隐藏视图,则在故事板中使用它很简单 –

回答

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) 
} 
+0

谢谢。将在9分钟内接受,因为我从upvoting卡住:-) –

相关问题