Je dois effectuer un lien en profondeur vers un UIViewController auquel on peut accéder à partir d'un autre UIViewController qui réside dans un UINavigationViewController qui est lui-même un onglet dans un UITableViewController.Comment effectuer un lien en profondeur vers un UIViewController accédé à partir d'un UIViewController dans un UINavigationController dans un UITabBarViewController?
Fondamentalement, il ressemble à ceci
UITabBarViewController -> (chaque onglet) UINavigationController -> UIViewController -> (presse UIBarButtonItem) -> TheViewControllerIWant
En raison des contraintes du projet sur lesquels je travaille, Tout cela a été créé par programme dans mon AppDelegate. Je ne peux pas utiliser Storyboards pour résoudre ce problème.
Voici mon code existant. Il me reçoit au ViewController, mais ne me donne pas un moyen pour revenir à l'ViewController dans l'onglet
- (BOOL) application: (UIApplication *) application openURL: (NSURL *) url sourceApplication: (NSString *) sourceApplication annotation: (id) annotation {
if ([url.scheme isEqualToString: @"myApp"]) {
if ([url.host isEqualToString: @"account"])
{
self.window.rootViewController = [[EditAccountViewController alloc] init];
}
}
J'ai aussi essayé cela comme un début, mais n'a aucun moyen de naviguer vers l'avant à la prochaine ViewController de celui du TabBar à lui:
- (BOOL) application: (UIApplication *) application openURL: (NSURL *) url sourceApplication: (NSString *) sourceApplication annotation: (id) annotation {
if ([url.scheme isEqualToString: @"myApp"]) {
if ([url.host isEqualToString: @"account"])
{
[_tabBarController setSelectedIndex:0];
self.window.rootViewController = _tabBarController;
}
}
}
Comment puis-je accomplir cette
Si elle était la 2e 3e objet etc dans une barre d'onglets, y aurait-il un objet .secondObject .thirdObject correspondant pour appeler vcs? – DCIndieDev
Si j'avais besoin d'aller un niveau plus profond et pousser un autre VC après celui pour la réponse ci-dessus, comment ferais-je cela? – DCIndieDev
Si vous voulez conserver la pile de navigation dans un ordre particulier, vous devrez pousser un nouveau viewController sur la pile après le prochain appui. Si vous ne vous souciez pas de la pile, vous pouvez initier le dernier contrôleur View de destnation et le pousser comme le premier VC dans la pile de navigation. Pour ce qui est de votre autre question, 'self.tabBarController.viewControllers' est un' NSArray' donc vous référenceriez d'autres ViewControllers comme '[self.tabBarController.viewControllers objectAtIndex: 2]; ' , 3, 4, etc .... – Lefteris