J'essaie de trouver comment attraper l'événement qui contrôle les onglets de commutation sur la page d'accueil de l'ordinateur. UITabBarController
. Comment pourrais-je accomplir cela ?
Réponses
Trop de publicités?Mettre en œuvre UITabBarControllerDelegate
par exemple, dans le délégué de votre application. applicationDidFinishLaunching
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}
Ensuite, mettez en œuvre l'un ou l'autre :
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
La première méthode est appelée avant le changement de vue et vous donne la possibilité d'opposer votre veto au changement de vue en renvoyant le résultat suivant NO
La deuxième méthode est appelée après que le changement de vue ait eu lieu.
Si vous utilisez le storyboard, faites ceci
dans didFinishLaunchingWithOptions
UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
[tabBar setDelegate:self];
Toujours dans AppDelegate, gardez <UITabBarControllerDelegate>
Et puis
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//Write your code here
}
Mieux vaut tard que jamais. Dans le cas de swift 4, vous pouvez le faire de la manière suivante.
tabBarViewController.delegate = self
Et mettre en œuvre UITabBarDelegate
dans votre classe. Vous obtiendrez le callback dans
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
//Stuff to do
}