2017-05-14 6 views
1

ich ein Problem habe, wenn ich versuche, eine Ansicht von einer Funktion eines helperClass im Viewer Klasse schnellen Entlassen Viewcontroller von einem Helfer/einer anderen Klasse

public func set(playerController: AVPlayerViewController){ 
playerController?.dismiss(animated: true, completion: nil) 

deren Ansicht ist

instanziert abzutun nicht im Fenster Hierarchie!

Wie kann ich den Controller richtig übergeben, damit die Helferklasse ihn abweisen kann?

Viewerclass:

helper.add(player: player) 
helper.set(playerController: playerController) 

Antwort

3

sollten Sie in der Lage sein zu tun, nur dismiss(animated: true, completion: nil) vom präsentiert View-Controller, wie Apple-Bibliotheken der Entlassung sowohl von Moderator und den präsentierten View-Controller behandeln. Keine Notwendigkeit, übergeben Sie eine Referenz

0

wie dies aus Ihrer Hilfsklasse Versuchen: -

AppDelegate.sharedInstance().window?.topMostController()?.dismiss(animated: true, completion: nil) 

Und fügen Sie diese Funktion in Ihrer AppDelegate-Datei: -

class func sharedInstance() -> AppDelegate{ 
    return UIApplication.shared.delegate as! AppDelegate 
} 
1

Sie können auch einen Rückruf geben entlassen etwas wie dieses:

helper.add(player: player) { 
self.dismiss(animated: true, completion: nil) 
} 

Player: 
public func set(playerController: AVPlayerViewController, completion: (Void)->Void){ 
    completion() 
} 
Verwandte Themen