2017-07-13 2 views
0

Ich mache eine schnelle App, die ein Tutorial enthält. Wenn ich versuche, zum Hauptcontroller zurückzuschalten, werden die Tab-Leiste-Elemente grau (Sie sollten weiß sein). Dies liegt daran, dass ich die Tab-Leiste im App-Delegaten eingerichtet habe. Gibt es eine Möglichkeit, den App-Delegaten programmgesteuert von einem View-Controller aus aufzurufen?App-Delegierten App-App erneut anrufen

Ich wünsche die didFinishLaunchingWithOptions() Funktion

+1

Mögliches Duplikat von [Wie erhalte ich einen Verweis auf den App-Delegaten in Swift?] (Https://stackoverflow.com/questions/24046164/how-do-i-get-a-reference-to-the- app-delegate-in-swift) – Pochi

+0

Ich würde versuchen, eine Menge von benutzerdefinierten Code in Ihrem AppDelegate und die Referenzierung in Ihrer App zu vermeiden. Meine Empfehlung wäre, UITabBarController abzuleiten und die Logik hinzuzufügen, die Sie darin benötigen. Sie sollten einen Verweis auf Ihren UITabBarController von anderen UIViewController-Unterklassen erhalten können. – adrum

Antwort

1

Wenn Sie anrufen bedeuten, dass Sie eine Methode in AppDelegate haben, die Tab-Leiste, um eine benutzerdefinierte Farbe setzt. Dann ja, (Ersetzen AppDelegate zu AppDelegate der Klassenname, wenn Sie es geändert):

let appDelegate = UIApplication.shared.delegate as? AppDelegate 

appDelegate?.yourCustomizeMethod() 

Wenn Sie meinen, Sie sind der Tab-Leiste in der „didFinishLaunchingWithOptions“ Methode Anpassen, dann werden Sie es extrahieren müssen in seine eigene benutzerdefinierte Funktion.

+0

Würde so etwas funktionieren. –

+0

etwas wie was? – Pochi

+0

'Wenn AppLegate = UIApplication.shared.Delegate als? AppDelegate { didFinishLaunchingWithOptions() } ' –

1
if let appDelegate = UIApplication.shared.delegate as? AppDelegate { 
     //do something with appDelegate 
    } 
+0

Wie würde ich eine Funktion in der Viewdidload @ Yun CHEN anrufen –