2016-05-11 17 views
3

Ich habe ein Elternteil viewController und eine childviewController mit dem Namen MyController. Ich möchte die Kindansicht für einige Sekunden zeigen und dann ablehnen. Wie lehne ich den Viewcontroller von Childs vom Eltern-View-Controller ab?entlassen viewcontroller von Eltern Blick

Mein Code so weit:

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

Sie können 'NSTimer' verwenden und planen. –

+0

Ich präzisierte meine Frage. Die Frage ist, wie kann ich es ablehnen? –

+0

Wenn Sie UIContainerView verwenden, zeigen Sie die Ansicht und versteckte die Ansicht, es ist einfach im Storyboard zu verwenden –

Antwort

3

Sie dispatch_after mit einem gewissen Zeitintervall verwenden können, um die Ausführung des Blocks zu verzögern:

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

Sie es als eine Funktion für den Fall definieren, können Sie vielleicht müssen sie woanders in Ihrem Programm:

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

Danke. Wird in 9 Minuten akzeptiert, weil ich von upvoting fest bin :-) –

Verwandte Themen