2016-08-02 1 views
0

J'essaye d'implémenter SWRevealViewController mais avoir un problème en essayant de lier la bascule à ma barre d'onglets, au lieu de la barre de navigation ou d'un bouton comme ils le suggèrent dans leurs exemples.Comment faire pour définir la méthode revealToggle à l'intérieur d'un UITabBarItem et non un UIButton en utilisant 'SWRevealViewController'?

Dans leur didacticiels de documentation, ils:

[self.menuButton setTarget: self.revealViewController]; 
[self.menuButton setAction: @selector(revealToggle:)]; 

pour déclencher le menu.

Maintenant, j'ai désactivé le contrôleur de navigation. Je voudrais l'utiliser dans un UITabBar à la place.

Le problème est que les éléments du TabBar sont UITabBarItem, et ne contiennent pas ces méthodes ci-dessus, ni ceux-ci:

[self.menuButton addTarget:self.revealViewController 
action:@selector(rightRevealToggle:) 
forControlEvents:UIControlEventTouchUpInside]; 

Comment puis-je lier la liaison à l'action que UITabBarItem?

Note: J'ajoute Swift comme une étiquette, comme il est le même - juste une syntaxe différente

Répondre

0

La façon la plus simple est le UITabBarDelegate. Mettre en œuvre votre classe et d'hériter le protocole en ajoutant après votre définition de classe:

@interface MyViewController : UIViewController<UITabBarDelegate> 

puis définir la méthode tabBar: didSelectItem: dans cette classe:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{ 
    if(item.title == @"First") { 
     [self.revealViewController revealToggle: self]; 
    } 
} 
+0

semble bon, je vais essayer. Merci –