2010-03-27 5 views
3

Voici mon talon de code pour mon app-delegate.m - il n'est jamais appelé.La méthode didSelectViewController de mon UITabBarController n'est pas appelée?

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    NSLog(@"%s", __FUNCTION__); 
} 

Il est défini dans cette app-delegate.h

@interface OrioleAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { 
    UIWindow *window; 
    UITabBarController *tabBarController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

@end 
+0

Nevermind j'ai oublié de mettre le délégué - oups. – mobibob

Répondre

15

Avez-vous fait une connexion entre votre UITabBarController et votre délégué de l'application?

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    ... 
    tabBarController.delegate = self; 
    ... 
} 
+0

Yup - J'ai oublié et vous étiez trop rapide :)) Merci pour la réponse super-vitesse-lumière. – mobibob

+0

Enfer, j'ai essayé, cette solution et n'a pas fonctionné. Est-ce que l'un d'entre vous doit aider? J'ai mis mon code ici: Bonjour, j'ai un problème similaire. J'ai posté mon code ici: http://stackoverflow.com/questions/10891182/iphone-how-to-implement-didselectvie wcontroller/10891264. – John

0

j'ai ajouté le tabBarController.delegate = self; suivant et tout va bien. J'espère que cela est utile aux autres.

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    // Add the tab bar controller's current view as a subview of the window 
    tabBarController.delegate = self; 
    [window addSubview:tabBarController.view]; 
} 
+0

Je suis confronté au même problème, je me suis assuré que j'ai délégué mis en place comme: tabBarController.delegate = self; mais les méthodes déléguées ne sont toujours pas appelées. –

+0

Vérifiez les conflits de votre définition IB. Quelle classe définissez-vous dans le constructeur et est-il relié à votre morue correctement? – mobibob

14

Si votre ViewController est un UITabBarController, vous devez définir l'auto comme il est délégué parce que vous ne pouvez pas changer le délégué du UITabBar directement.

Par exemple, dans le viewDidLoad de votre UITabBarController:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.delegate = self; 
} 
+0

Êtes-vous sûr que c'est correct? comme je suis confronté au même problème – Maulik

+0

@Maulik Ça marche pour moi. – CedricSoubrie

+0

ya son travail pour moi aussi ... en fait je l'avais essayé avant et ensuite chercher ceci pour vérifier est-ce correct ou pas et j'ai eu votre réponse si ... – Maulik

Questions connexes