6 votes

bouton de la barre d'onglets ios en vue modale

J'utilise idev-recipes/RaisedCenterTabBar et je veux une vue modale appelée depuis le bouton central, pas une caméra.

Le code est ici : https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar

Avez-vous des idées sur la manière de faire fonctionner ce système ?

4voto

Tzegenos Points 535

Il existe une meilleure approche à suivre pour y parvenir. Et beaucoup plus facile.

Ce que je comprends par la mise en œuvre en utilisant cette méthodologie : https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar est que des choses étranges se produisent lorsque vous essayez de cacher la barre d'onglets. Donc la meilleure solution que j'ai trouvée pour moi (la même chose que vous) est ici : http://www.lantean.co/display-a-modal-uiviewcontroller-when-a-uitabbaritem-is-pressed/

Il n'y a pas besoin de faire autre chose. Ignorez simplement le contrôleur de vue auquel l'UITabBarItem est associé et présentez votre vue modale ! Et c'est tout !

2voto

LJ Wilson Points 10777

Je créerais votre propre sous-classe de UITabBarController et ajouterais ensuite cette méthode :

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item  {

}

Vous serez en mesure de savoir quel élément a été sélectionné, puis d'y instancier une VC modale.

0voto

Foebe Points 167

Vous pourriez probablement utiliser l'option UITabBarDelegate avec le
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
méthode.
La méthode est envoyée au délégué, lorsque quelqu'un appuie sur un bouton dans la barre d'onglets. Là, vous pouvez vérifier si c'est le bon bouton, puis instancier le contrôleur de la vue modale.

0voto

NSProgrammer Points 1210

Que ce soit avec une sous-classe ou en utilisant le délégué, vous pouvez simplement vérifier si l'élément sélectionné est le bouton du milieu et, si c'est le cas, faire en sorte que la barre de tabulation sélectionne l'élément précédemment sélectionné, puis présenter votre contrôleur de vue de modèle. Puisque vous ferez cela dans la même source RunLoop que la sélection originale, la sélection de l'onglet sera effectivement annulée sans jamais passer au VC du milieu.

0voto

Piyush Kashyap Points 1493

Selon l'exemple de code que vous avez fourni => https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar

Le bouton de l'onglet central relevé est un UIButton, il suffit donc de définir l'action de ce bouton comme suit dans la classe BaseViewController.m

[button addTarget:self action:@selector(showmodalview) forControlEvents:UIControlEventTouchUpInside];

et ensuite dans la méthode showmodalview écrire ce code=>

-(void)showmodalview
{
    UIViewController *view1=[[UIViewController alloc] init]; // you can use any view controller instance you want ,this is just the example.
    [self presentModalViewController:view1 animated:YES];
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X