Tab Bar Controller (storyboard modèle) et AppDelegate
Quand je crée un XCode 4 iPhone modèle pour TabBarController avec storyboard, son automatiquement configuré avec une vue principale du contrôleur et tout et tout. Mais il n'y a pas de propery pour l'Onglet de la Barre de Contrôleur dans l'AppDelegate. Puis-je créé un exutoire pour elle, et a essayé de faire le lien avec mon Tab Bar Controller dans le storyboard, mais ce n'est pas possible. Est-il un meilleur moyen pour accéder à la Barre d'Onglet Contrôleur dans didFinishLaunchingWithOptions méthode, comme c'est déjà le genre de branché? Ce que je veux, c'est de l'auto.currentController = courant de l'onglet dans la Barre d'Onglet Contrôleur.
AppDelegate.h:
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m:
@interface AppDelegate()
@property (nonatomic, assign) UIViewController<SubViewContainer> *currentController;
@end
@synthesize window = _window
@synthesize currentController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//I need this piece of code to equal the Tab Bar Controller current tab
self.currentController = ?
return YES;
}
//And I'm gonna use this void for some statements about the Tab Bar Controller tabs:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:
(UIViewController *)viewController
{
//with some statements
}
OriginalL'auteur ingenspor | 2012-07-29
Vous devez vous connecter pour publier un commentaire.
En supposant que les choses sont mis en place dans votre scénario comme prévu, ce qui devrait vous donner une référence à l'onglet de la barre de contrôleur dans
didFinishLaunchingWithOptions:
:Habituellement, vous pouvez obtenir le régulateur de courant à l'aide de...
...mais depuis pas de contrôleur a été choisi au moment de cette méthode exécute, la meilleure estimation de ce que vous voulez, c'est...
Une fois que vous avez la barre d'onglet contrôleur, vous pouvez obtenir son
selectedViewController
de la propriété. Est-ce que vous demandez?J'ai mis à jour ma question c'est donc plus clairement. Je suis nouveau sur ce que je ne comprends pas très bien comment l'utiliser vous répondre dans mon code, mais il regarde à droite dans le journal comme il est dit Racine: UITabBarController.
Mise à jour de réponse.
Merci! Elle les approcher, mais il dit "Incompatible types de pointeur de l'initialisation UITabBarController avec une expression de type UIViewController." Peut-être que je dois en quelque sorte ajouter le TabBarController comme une sous-vue de la fenêtre principale?
OriginalL'auteur Phillip Mills
Utilisation
self.window.rootViewController.tabBarController
pour accéder à ce point de vue du contrôleur de la barre d'onglet contrôleur.self
n'est pas une vue de contrôleur dans ce cas.Je suppose que vous essayez d'accéder à la barre d'onglet contrôleur à partir de l'App Délégué ensuite. Essayez le code mis à jour.
Ouais, c'est ce que je suis en train de faire. Mais le collage de soi.de la fenêtre.rootViewContoller.tabBarController dans il n'y a pas de travail. J'ai enlevé mon tabBarController propriété/synthétiser/délégué du code de appdelegate que je ne suis pas censé en créer un. Mais je ne peux pas référence à mon restant dans l'appdelegate, si elle dit "Racine: UITabBarController si je NSLog auto.de la fenêtre.rootViewController.
Ressemble @PhillipMills réponse travaillé. Il ressemble beaucoup plus élégant. Je m'excuse si j'ai été confondu avec exactement ce que vous demandez. Content que ça fonctionne!
OriginalL'auteur The Kraken