2010-06-24 2 views
2

Je construis une application iPad qui a essentiellement un UITabController qui contrôle et affiche 2 UIViewControllers que je jeu via:Ajout d'un bouton dans UITabBar pour déclencher une popover

[tabBarController setViewControllers: 
[NSArray arrayWithObjects:browserController, videoController, nil]]; 

Je voudrais ajouter un 3ème bouton le UITabBar qui présente un Popover en cliquant dessus. Je ne sais pas comment faire ...

J'ai essayé quelques choses comme: (en .h)

UITabBarItem *bbiOpenPopOver; 

(en .m)

[bbiOpenPopOver setTitle:@"test"]; 
tabBarController.navigationItem.rightBarButtonItem = bbiOpenPopOver; 

Mais Je devine que j'étais loin, cela n'a rien de visible ...

Comment ajouter un élément à un UITabBar par code, qui présentera un Popover?

Merci pour vos commentaires et/ou pointeurs.

S.

Répondre

0

Un UITabBarItem ne doit pas afficher un popover. Les Apple HIGs indiquent spécifiquement qu'ils doivent être utilisés pour changer de vue et ne doivent pas être utilisés pour invoquer du code.

+0

Pas la réponse que je cherchais, mais bon, je vais le prendre. J'ai fini par faire de l'affichage en heads-up ... –

+0

Même si le HIG dit cela, un tas d'applications le font malheureusement. Instagram, diverses applications shopping, etc. Ils veulent tous un bouton du milieu pour faire une action. –

+0

Je ne pense pas que le PO vous demandait votre avis. Je pense qu'elle avait un intérêt dans la façon dont cela est fait. – hooleyhoop

6

Vous pouvez définir le délégué du UITabController puis mettre en œuvre la fonction tabBarController:shouldSelectViewController: comme ceci:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController 
{ 
    if (viewController == myDummyVC) 
    { 
     //show popup 

     return NO; //does not change the tab 
    } 

    return YES; //does change the tab 
} 

De cette façon, vous montrerez la fenêtre au lieu de changer la vue et en sélectionnant l'onglet.