L'accès UITabBarController de UIVIewController
Je développe une application basée sur UITabbar et le point de vue de la hiérarchie comme suit.
UITabBarController ----> UINavigationController ----> UIViewController
J'ai besoin d'accéder à la UITabBarController de la UIIVewController . Mais les propriétés suivantes renvoie toujours zéro.
auto.tabBarController et l'auto.navigationController.tabBarController
Est-il un moyen d'accéder à la Tabbarcontroller directement auprès d'un enfant viewController sans l'aide de l'AppDelegate ?
@implementation HomeViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
//Custom initialization
self.title = @"Home";
self.navigationItem.title = @"Home";
self.tabBarItem.image = [UIImage imageNamed:@"TabBarHome"];
UITabBarController *tab = self.tabBarController;
UITabBarController *tab1 = self.navigationController.tabBarController;
UITabBarController *tab2 = self.navigationController.presentingViewController;
}
return self;
}
il est possible de l'utiliser juste
self.tabBarController
de toute UIViewController
qui est incorporé dans le UITabBarController
, vérifiez @Rashad la réponse ci-dessousOriginalL'auteur rustylepord | 2014-04-02
Vous devez vous connecter pour publier un commentaire.
Avec la hiérarchie que vous utilisez:
Je peux accès sans problème à
UITabBarController
de laViewController
avec:Déplacer votre initialisation Personnalisée à
viewDidLoad
ouviewDidAppear
Alors pour shure vous pouvez accéder à
TabBarController
avecself.tabBarController
Une autre façon d'arriver à votre TabBarController est:
Mais il est totalement inutile dans votre cas.
EDIT:
Si vous travaillez avec Xib, puis vous a été créé un TabBarController par programme dans votre AppDelegate. Je suis sûr que vous avez quelque chose comme:
Ensuite, vous pouvez l'appeler dans votre ViewController:
Cela ne fonctionne pas sur Xcode 7 beta 6. d'autres personnes peuvent confirmer que cela fonctionne?
Cela ne fonctionne pas sur xCode 9. Quelque chose de cette base est foutu 🙁
OriginalL'auteur Gabriel.Massana
Vous le faites mal.
J'ai une application mêmes que les vôtres. Je peux accéder à tabbar de
viewDidLoad
.Essayez ceci:
Espère que cela aide.. 🙂
OriginalL'auteur Rashad