2017-01-03 2 views
0

Ich versuche zu erkennen, welche Registerkarte vom Benutzer in Echtzeit ausgewählt. als Beispiel, wenn Benutzer 0 th Index auswählen, zur gleichen Zeit möchte ich erhalten, dass Benutzer die Registerkarte zeroth Index ausgewählt hat. also dafür habe ich tabbarcontroller Delegate-Methode wie unten verwendet.Tab-Leiste wählte Delegate Methoden geben Sie den zuvor ausgewählten Tab-Index in IOS, swift 3

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 

     print("the selected index is : \(selectedIndex)") 
    } 

aber dies zeigt die vorherige Ansicht controller.as ein Beispiel denke ich, in second tab bin und dann wähle ich die first tab dann diese drucken den Index als 2 .so wie kann ich die richtigen ausgewählten Registerkarte erhalten. hoffe deine Hilfe dabei.

+0

Kasse meine Antwort. –

Antwort

5

Sie können Index von vorgewähltem UITabBarItem erhalten, indem Sie Position dieses bestimmten Einzelteils von der Reihe der Einzelteile in UITabBar erhalten. Probieren Sie dies aus

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 
    print("the selected index is : \(tabBar.items.index(of: item))") 
} 
+0

danke und nett. – bill

2

Swift 3.1:

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 
    guard let items = tabBar.items else { return } 
    print("the selected index is : \(String(describing: items.index(of: item)))") 
}