2017-07-07 2 views
2

J'ai utilisé les éléments suivants tutorial pour implémenter des onglets personnalisés dans ios Cela fonctionne très bien lorsque j'appuie sur l'un des éléments. Maintenant, je veux le déplacer par programme. par exemple. J'ai reçu le formulaire de notification Firebase et je souhaite ouvrir le troisième onglet. Mais je deviens nul. J'ai référencé l'instance MainTabbarController dans appdelegate. Voici ce que j'ai essayé Dans CustomTabBarSélection de l'onglet par programmation personnalisée de la barre d'onglets ios

func customTapped(index :Int){ 
     animateTabBarSelection(from: selectedTabBarItemIndex, to: index) 
     selectedTabBarItemIndex = index 
     delegate.didSelectViewController(self, atIndex: index) 
} 

Dans AppDelegate

mainTabBarController?.customTabBar?.customTapped(index: 2) 

Répondre

1

À partir du lien que vous avez fourni en même temps que la question, voici les déclarations que je trouve être responsable de les onglets de commutation

func barItemTapped(sender : UIButton) { 
    let index = tabBarButtons.indexOf(sender)! 

    animateTabBarSelection(from: selectedTabBarItemIndex, to: index) 
    selectedTabBarItemIndex = index 
    delegate.didSelectViewController(self, atIndex: index) 
} 

Vous pouvez simplement modifier ce code commeAppelez la fonction func tabSelectedAt(_ index:Int) avec l'index de l'onglet que vous voulez changer.

+0

Avez-vous essayé de l'appeler depuis AppDelegate? Je reçois zéro. Le débogueur indique que le paramètre SelectedTabBarItemIden de CustomTabBar est –

+0

Cela signifie qu'il n'y a aucun élément précédemment sélectionné. Dans ce cas, vous n'aurez peut-être pas besoin de montrer l'animation correctement. Vous pouvez donc ignorer cette instruction animateTabBarSelection si selectedTabBarItemIndex est nul. –

+0

J'ai mis à jour la réponse s'il vous plaît vérifier –