2015-03-26 17 views
13

Ho una vista derivata da UIViewControler (non UITabBarController). In questa vista ho aggiunto una barra delle schede con diversi elementi della barra delle schede. Ho usato UITabBarDelegate per consentire alla vista di fare qualcosa quando gli utenti toccano ogni elemento della barra delle schede.Selezionare una voce della barra di tabulazione a livello di codice (non utilizzando UITabBarController)

class MyViewController: UIViewController, UITabBarDelegate { 

    func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) { 
     // do something 
    } 
} 

mia domanda è come possiamo programmazione selezionare il primo elemento barra delle schede quando la vista viene caricato per primo? Nota che vorrei che anche la prima voce della scheda fosse nello stato "attivo".

Anche in questo caso, non sto usando UITabBarController

Grazie

risposta

27
[tabBar setSelectedItem: [tabBar.items objectAtIndex:0]]; 

Che in rapido, penso che sarebbe:

tabBar.selectedItem = tabBar.items![0] as UITabBarItem 
+1

Grazie Foster. In realtà devo scrivere questo codice: 'tabBar.selectedItem = tabBar.items! [0] come UITabBarItem' Tuttavia, vorrei simulare l'evento" tap "nella prima scheda. È possibile? – tala9999

+0

Non sono sicuro di cosa intendi. Stai dicendo che il metodo delegate tabBar (_: didSelectItem :) non viene chiamato quando fai tabBar.selectedItem = tabBar.items! [0] come UITabBarItem? –

+0

Sì. Ecco cosa intendevo. Quel codice imposta semplicemente la scheda come "attiva" e non attiva 'tabBar (_: didSelectItem:)' – tala9999

2

a Swift se TabBar viene utilizzato non tabbarcontroller set predefinito seleziona

var tabbar:UITabBar?//if declare like this 

tabbar!.selectedItem = self.tabbar!.items![0] as? UITabBarItem 

o

let tabbar = UITabBar()//if declare and initilize like this 

tabbar.selectedItem = self.tabbar.items![0] as? UITabBarItem 
0

Prima di selezionare la voce di scheda attiva bar evento viewDidLoad

[self.tabBar setSelectedItem: [self.tabBar.items objectAtIndex: 0]];

1

Swift 3:

tabBarController.selectedIndex = 0 // (or any other existing index)