Bei App-Start habe ich UITabBarController als Root-View-Controller. Für diese Tableiste habe ich insgesamt 7 ViewControllers. Innerhalb AppDelegate.swift
in Verfahren application(application:didFinishLaunchingWithOptions:)
, wenn ich folgende, funktioniert es richtig:Wählen Sie einen Index größer als 3 für UITabBarController bei App-Start funktioniert nicht
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
self.tabBarController = self.window?.rootViewController as! UITabBarController
self.tabBarController.selectedIndex = 2
return true
}
Das funktioniert perfekt und das dritte Element in der Tab-Leiste ausgewählt wird, wenn die Anwendung gestartet wird.
Aber wenn ich irgendein Element auswählen möchte, das unter dem mehr Navigation Controller gegangen ist (was jeden Index über 3 bedeutet), funktioniert self.tabBarController.selectedIndex = 5
einfach nicht. Die erwähnte Anweisung funktioniert nach dem Start der App an jedem beliebigen Punkt, d. H. Wenn ich self.tabBarController.selectedIndex = 5
innerhalb der viewDidAppear
des ersten ViewControllers mache, funktioniert es; aber es funktioniert nicht zum Zeitpunkt des App-Starts, d.h. in application(application:didFinishLaunchingWithOptions:)
. Das ausgewählte Element der Registerkartenleiste bleibt nach dem Start unverändert. Wie kann ich den ausgewählten Index beim Start der App über 3 hinaus ändern (was unter moreNavigationController
geht)?
http://stackoverflow.com/a/33375674/2303865 –
@Leo Dabus, ich möchte Deep-Link von Push-Benachrichtigung beim Start der Anwendung behandeln. Wenn also meine App nicht läuft und Push-Benachrichtigungen erhalten, klicke ich auf Push-Benachrichtigung. Zu diesem Zeitpunkt wird 'application (application: didFinishLaunchingWithOptions:)' ausgelöst, aber der erste View-Controller ist noch nicht geladen. Wie funktioniert mein Beobachter zu diesem Zeitpunkt, da die View-Controller-Instanz nicht beobachtet werden kann? –
Ich habe Ihren Vorschlag versucht. Leider funktioniert es nicht :( –