2010-08-17 4 views
0

assez nouveau pour le développement d'applications iPhone, donc cela pourrait être vraiment évident (le cas échéant, des excuses à l'avance!)iPhone - UIButton pour sélectionner l'onglet en vue différent

Je construis une application qui a une barre d'onglets. Toutefois, lorsque l'application s'exécute pour la première fois et que l'écran de lancement est affiché avec 3 UIButtons, chacun de ces boutons pointe sur une vue de l'un des onglets. Ce que je dois faire est:

Fermer la vue existante Ouvrez la vue sélectionnée Définir l'onglet en surbrillance en conséquence

Cela sonne comme il devrait être assez facile, mais quelques heures de recherche sur Google n'a rien trouvé!

Merci pour votre aide, Kev

supplémentaires:
Désolé - J'utilise un tabBarController ... Mais au lieu de lancer immédiatement les vues de la barre d'onglet J'utilise le code ci-dessous pour lancer la menu d'accueil à la place.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    homeViewController *splashView = [[homeViewController alloc] initWithNibName:@"homeView" bundle:nil]; 
    [window addSubview:splashView.view]; 


// [window addSubview:tabBarController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

Sur le menu d'accueil, il y a UIButtons qui doivent créer un lien vers les différents onglets ... Espérons que cela clarifie ...

Cheers!

Répondre

1

Oh. Ensuite, il devient un peu plus complexe. Qu'est-ce que vous voulez faire est essentiellement ceci:

  1. Ajouter une méthode à votre AppDelegate - (void) showTabBarWithSelectedTab: (NSUInteger) tabIndex. Dans cette méthode, utilisez tabBarController.selectedIndex pour sélectionner l'index correct, puis supprimez la vue homeViewController de la fenêtre et ajoutez la vue tabBarController à la place.
  2. Dans homeViewController, disposez d'actions pour les boutons qui appellent la méthode AppDelegate nouvellement créée avec l'index de tabulation correct.

Généralement, je dirais que cela ajoute un peu trop de logique à l'AppDelegate. Idéalement, vous implémenteriez ceci dans un nouveau contrôleur de vue, en entourant et en gérant à la fois homeViewController et tabBarController. Cependant, avoir un UITabbarController à l'intérieur d'un autre contrôleur de vue n'est pas officiellement supporté - bien que vous puissiez le faire fonctionner quand même.

+0

Merci beaucoup eliego! Je suis presque là! Il est maintenant tout chargement, mais quand je construire et exécuter 'il est la présentation d'un avertissement: « -showTabBarWithSelectedTab: » pas trouvé dans le protocole (s) » Voici le code: #import « homeViewController.h » #import" SilverDoorAppDelegate.h » #define myAppDelegate [[UIApplication sharedApplication] délégué] @implementation homeViewController - (IBAction) goSearch: (id) sender { \t [myAppDelegate showTabBarWithSelectedTab: 0]; \t } Un grand merci - vraiment apprécier votre – kevster76

+0

Remplacez #define myAppDelegate [[délégué UIApplication sharedApplication]] par #define myAppDelegate ((NameOfYourAppDelegateClass *) [[délégué UIApplication sharedApplication]].) car [[UIApplication sharedApplication] delegate] est déclaré pour renvoyer tout objet qui implémente ApplicationDelegate protocole, lors de l'ajout de fonctionnalités non dans ce protocole, vous devez explicitement jeter l'objet à votre application d classe d'élégance. N'hésitez pas à accepter la réponse lorsque vous la faites fonctionner - il est toujours possible d'ajouter des commentaires et des réponses après. Et - vous êtes les bienvenus;) – eliego

+0

Parfait - merci beaucoup! – kevster76

0

Il est un peu difficile de comprendre votre question, mais il semble que vous devriez utiliser UITabBarController au lieu de la vue autonome UITabbar. This est la lecture indispensable! Bonne chance

+0

Désolé - j'aurais dû être plus clair - J'utilise un UITabBarController mais je charge d'abord un autre écran - plus d'infos ajoutées ci-dessus. Merci pour votre aide jusqu'à présent! – kevster76

Questions connexes